home *** CD-ROM | disk | FTP | other *** search
/ Corel Professional Photos 373: Everyday Objects / Corel Stock Photo Library 2 - 373 - Everyday Objects.iso / drwmodel / programs / data / resource.ps < prev    next >
Text File  |  1994-04-19  |  100KB  |  3,632 lines

  1. $resource begin
  2. userdict begin /EncodingDirectory 5 dict def end
  3. true setglobal
  4. currentdict /CategoryDICT 20 dict put
  5. % Dictionary to hold the global resources
  6. currentdict /GlobalRDicts
  7. <<
  8.     /Category                        20 dict
  9.     /Font                                GlobalFontDirectory
  10.     /Encoding                        5 dict
  11.     /Form                                5 dict
  12.     /Pattern                        5 dict
  13.     /ProcSet                        5 dict
  14.     /ColorSpace                    10 dict
  15.     /Halftone                        5 dict
  16.     /ColorRendering            5 dict
  17.     /Filter                            14 dict
  18.     /ColorSpaceFamily        5 dict
  19.     /Emulator                        5 dict
  20.     /IODevice                        5 dict
  21.     /ColorRenderingType    5 dict
  22.     /FMapType                        5 dict
  23.     /FontType                        5 dict
  24.     /FormType                        5    dict
  25.     /HalftoneType                5 dict
  26.     /ImageType                    5 dict
  27.     /PatternType                2 dict
  28.     /Generic                        0 dict
  29. >> put
  30.  
  31. % Dictionary to hold the info returned by ResourceStatus for global resources
  32. currentdict /GlobalSDicts
  33. <<
  34.     /Category                        20 dict
  35.     /Font                                40 dict
  36.     /Encoding                        5 dict
  37.     /Form                                5 dict
  38.     /Pattern                        5 dict
  39.     /ProcSet                        5 dict
  40.     /ColorSpace                    10 dict
  41.     /Halftone                        5 dict
  42.     /ColorRendering            5 dict
  43.     /Filter                            14 dict
  44.     /ColorSpaceFamily        5 dict
  45.     /Emulator                        5 dict
  46.     /IODevice                        5 dict
  47.     /ColorRenderingType    5 dict
  48.     /FMapType                        5 dict
  49.     /FontType                        5 dict
  50.     /FormType                        5    dict
  51.     /HalftoneType                5 dict
  52.     /ImageType                    5 dict
  53.     /PatternType                2 dict
  54.     /Generic                        0 dict
  55. >> put
  56.  
  57. false setglobal
  58. % Dictionary to hold the local resources
  59. currentdict /LocalRDicts
  60. <<
  61.     /Category                        20 dict
  62.     /Font                                FontDirectory
  63.     /Encoding                        EncodingDirectory
  64.     /Form                                5 dict
  65.     /Pattern                        5 dict
  66.     /ProcSet                        5 dict
  67.     /ColorSpace                    10 dict
  68.     /Halftone                        5 dict
  69.     /ColorRendering            5 dict
  70.     /Generic                        0 dict
  71. >> put
  72.  
  73. % Dictionary to hold the info returned by ResourceStatus for local resources
  74. currentdict /LocalSDicts
  75. <<
  76.     /Category                        20 dict
  77.     /Font                                40 dict
  78.     /Encoding                        5 dict
  79.     /Form                                5 dict
  80.     /Pattern                        5 dict
  81.     /ProcSet                        5 dict
  82.     /ColorSpace                    10 dict
  83.     /Halftone                        5 dict
  84.     /ColorRendering            5 dict
  85.     /Generic                        0 dict
  86. >> put
  87.  
  88. currentdict /KeyAccessTest {
  89.     $resource begin
  90.     /matched false def
  91.     [/arraytype /stringtype /packedarraytype /dicttype /filetype]
  92.     {/key load type eq matched or /matched exch def } forall
  93.     matched {
  94.         $resource /key get rcheck not {
  95.             currentdict /matched undef
  96.             $resource /key load $resource /key undef
  97.             end /findencoding /invalidaccess err
  98.         } if
  99.     } if
  100.     currentdict /matched undef
  101.     end
  102. } put
  103.  
  104. currentdict /err { currentdict /key undef false setglobal /_err exch def 
  105.             /_cmd exch def $error begin /newerror true def
  106.             /errorname _err def /command _cmd cvx def 
  107.             end end stop} put
  108.  
  109. true setglobal
  110. % CATEGORY
  111. /Category
  112. <<
  113. /InstanceType /dicttype /Category /Category
  114. /err { currentdict /key undef false setglobal /_err exch def 
  115.             /_cmd exch def $error begin /newerror true def
  116.             /errorname _err def /command _cmd cvx def end end stop} 
  117.  
  118. /ResourceForAll {
  119.     genericresourceforall
  120. }
  121.  
  122. /ResourceStatus {
  123.     count 2 lt {
  124.         /ResourceStatus /stackunderflow err
  125.     } if
  126.     $resource begin
  127.  
  128.     /category exch def
  129.     /key exch def
  130.     currentglobal {
  131.         currentdict /GlobalSDicts get category get /sdict exch def
  132.         sdict length 0 eq {
  133.             false
  134.         } {
  135.             sdict begin
  136.                 currentdict /key load known not {
  137.                     false
  138.                 } {
  139.                     currentdict /key load get {} forall
  140.                 } ifelse
  141.             end
  142.         } ifelse
  143.     } {
  144.         currentdict /LocalSDicts get category get /sdict exch def
  145.         sdict length 0 eq {
  146.             currentdict /GlobalSDicts get category get length 0 eq {
  147.                 false
  148.             } {
  149.                 currentdict /GlobalSDicts get category get begin
  150.                     currentdict /key load known not {
  151.                         false
  152.                     } {
  153.                         currentdict /key load get {} forall
  154.                     } ifelse
  155.                 end
  156.             } ifelse
  157.         } {
  158.             currentdict /LocalSDicts get category get length 0 eq {
  159.                 false
  160.             } {
  161.                 currentdict /LocalSDicts get category get begin
  162.                     currentdict /key load known not {
  163.                         false
  164.                     } {
  165.                         currentdict /key load get {} forall
  166.                     } ifelse
  167.                 end
  168.             } ifelse
  169.         } ifelse
  170.     } ifelse
  171.     $resource /key undef $resource /sdict undef
  172.     $resource /category undef
  173.     end
  174. }
  175.  
  176. /ResourceFileName {
  177.     (Resource/Category/) genericresourcefile
  178. }
  179.  
  180. /UndefineResource {
  181.     count 2 lt {
  182.         /UndefineResource /stackunderflow err
  183.     } if
  184.     $resource begin
  185.     /category exch def
  186.     /key exch def
  187.             % always delete from local vm dictionary
  188.     currentdict /LocalRDicts get category get length 0 ne {
  189.         currentdict /LocalRDicts get category get 
  190.         begin
  191.             currentdict /key load undef
  192.         end
  193.     } if
  194.     currentdict /LocalSDicts get category get length 0 ne {
  195.         currentdict /LocalSDicts get category get 
  196.         begin
  197.             currentdict /key load undef
  198.         end
  199.     } if
  200.     currentglobal {                                 % if global vm, delete
  201.         currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  202.             currentdict /GlobalRDicts get category get 
  203.             begin
  204.                 currentdict /key load undef
  205.                 $resource /CategoryDICT get $resource /key get undef
  206.             end
  207.             currentdict /GlobalSDicts get category get 
  208.             begin
  209.                 currentdict /key load undef
  210.             end
  211.         } if
  212.     } if
  213.     currentdict dup /key undef /category undef
  214.     end
  215. }
  216.  
  217. /FindResource {
  218.     count 2 lt {
  219.         /FindResource /stackunderflow err
  220.     } if
  221. % Actually, we don't want to ditch the category name. We want to search for
  222. %  a disk-based resource within the subdirectory named for the category...
  223. %  Encodings, for instance in /encodings.
  224.     pop        % ditch the category name
  225.     $resource exch /key exch put
  226.     $resource begin 
  227.         currentdict /GlobalRDicts get /Category get /rdict exch def
  228.         rdict key known not {
  229.             % here we will later insert code to search for files containing
  230.             % the stuff.  Be sure to update the ResourceStatusDict also !!
  231.             end /FindResource /undefinedresource err
  232.         } if
  233. %        currentdict key get
  234. %        $resource /CategoryDICT get $resource /key get get
  235.         rdict key get
  236.  
  237.     currentdict /key undef currentdict /rdict undef
  238.     end 
  239. }
  240.  
  241. /DefineResource { 
  242.     $resource /initialize known not {
  243.         currentglobal not {
  244.             /DefineResource /invalidaccess err
  245.         } if
  246.     } if
  247.     count 3 lt {
  248.         /DefineResource /stackunderflow err
  249.     } if
  250.     currentdict /InstanceType get
  251.     $resource begin
  252.  
  253.     /insttype exch def
  254.     /category exch def
  255.     /inst exch def 
  256.     
  257.     $resource /initialize known not {
  258.         /newcategory true def
  259.     } {
  260.         /newcategory false def
  261.     } ifelse
  262.     currentglobal {
  263.         currentdict /GlobalRDicts get category get /rrdict exch def
  264.         currentdict /GlobalSDicts get category get /sdict exch def
  265.         currentdict /GlobalRDicts get /rdict exch def
  266.     } {
  267.         currentdict /LocalRDicts get category get /rrdict exch def
  268.         currentdict /LocalSDicts get category get /sdict exch def
  269.         currentdict /LocalRDicts get /rdict exch def
  270.     } ifelse
  271.     inst type currentdict /insttype get ne {
  272.         end /DefineResource /typecheck err
  273.     } if
  274.     /key exch def 
  275.     inst /Validate where {
  276.         /Validate get exec
  277.     } {
  278.         end /DefineResource /typecheck err
  279.     } ifelse
  280.     currentglobal {
  281.         currentdict /inst get gcheck not { % can't store local instance into global
  282.             end /DefineResource /invalidaccess err
  283.         } if
  284.     } if 
  285.     % put it into the global dictionary in the resource dictionary
  286.     $resource /CategoryDICT get key inst put
  287.  
  288.     % store a copy of the dict in the Category dict in GlobalRDict so that
  289.     % resourceforall can grab it.
  290.     currentdict /rrdict get key inst put
  291.     currentdict /GlobalSDicts get /Category get $resource /key get [0 -1 true] put
  292. %    $resource key inst put 
  293. %    currentdict /sdict get key [0 -1 true] put 
  294.     newcategory {        %% make global/local status/resource dict entries
  295.         rdict key 10 dict put
  296.         false setglobal
  297.         currentdict /LocalSDicts get /sdict exch def
  298.         currentdict /LocalRDicts get /rdict exch def
  299.         rdict key 10 dict put
  300.         sdict key 10 dict put
  301.         currentdict /LocalSDicts get /Category get $resource /key get [0 -1 true] put
  302.         true setglobal
  303.     } if
  304.     inst
  305.     $resource /initialize known not {
  306.         readonly
  307.     } if
  308.     currentdict /inst undef currentdict /key undef
  309.     currentdict /rdict undef currentdict /sdict undef
  310.     currentdict /insttype undef currentdict /newcategory undef
  311.     currentdict /rrdict undef
  312.     end
  313. }
  314.  
  315. /Validate {
  316.     [/DefineResource /UndefineResource /FindResource /ResourceStatus
  317.     /ResourceForAll /Category ] {
  318.         1 index exch known not {
  319.             /DefineResource /typecheck err
  320.         } if
  321.     } forall
  322.     pop
  323. }
  324. >>
  325. def
  326.  
  327. CategoryDICT /Category Category put
  328. $resource /GlobalRDicts get /Category CategoryDICT put
  329.  
  330. /initialize     true def
  331. end
  332.  
  333. % Regular Resources
  334. % FONT
  335. /Font
  336. <<
  337. /InstanceType /dicttype /Category /Font
  338. /err {currentdict /key undef false setglobal 
  339.             /_err exch def /_cmd exch def $error begin /newerror true def 
  340.             /errorname _err def /command _cmd cvx def end stop}
  341.  
  342. /ResourceForAll {
  343.     genericresourceforall
  344. }
  345.  
  346. /ResourceFileName {
  347.     (fonts/) genericresourcefile
  348.  
  349. % Moved into systemdict.h, as genericresourcefilename operator.
  350. %    exch dup length
  351. %    3 1 roll exch
  352. %    dup (fonts/) dup length 
  353. %    6 1 roll
  354. %    0 exch putinterval
  355. %    dup 3 1 roll exch 4 index exch
  356. %    =string cvs putinterval
  357. %    3 1 roll add 0 exch getinterval
  358. }
  359.  
  360. /ResourceStatus {
  361.     count 2 lt {
  362.         /ResourceStatus /stackunderflow err
  363.     } if
  364.     $resource begin
  365.  
  366.     /category exch def
  367.     /key exch def
  368.     currentglobal {        % global, look only in global stat dict
  369.         currentdict /GlobalSDicts get category get /sdict exch def
  370.         sdict length 0 eq {
  371.             false
  372.         } {
  373.             sdict begin
  374.                 currentdict /key load known not {
  375.                     false
  376.                 } {
  377.                     currentdict /key load get {} forall
  378.                 } ifelse
  379.             end
  380.         } ifelse
  381.     } {            % look in the local first, then the global dict
  382.         currentdict /LocalSDicts get category get /sdict exch def
  383.         sdict length 0 eq {        % no local dict for this
  384.             currentdict /GlobalSDicts get category get length 0 eq {
  385.                 false
  386.             } {            % look in the global status dictionary
  387.                 currentdict /GlobalSDicts get category get begin
  388.                     currentdict /key load known not {
  389.                         false
  390.                     } {
  391.                         currentdict /key load get {} forall
  392.                     } ifelse
  393.                 end
  394.             } ifelse
  395.         } {        % look first in the local dict
  396.             currentdict /LocalSDicts get category get begin
  397.                 currentdict /key load known not {        % not in the local stat dict
  398.                     end
  399.                     currentdict /GlobalSDicts get category get begin
  400.                         currentdict /key load known not {        % not in global stat dict
  401.                             false
  402.                         }{
  403.                             currentdict /key load get {} forall
  404.                         } ifelse
  405.                 } {    % found in the local dict
  406.                     currentdict /key load get {} forall
  407.                 } ifelse
  408.             end
  409.         } ifelse
  410.     } ifelse
  411.     $resource /key undef $resource /sdict undef
  412.     $resource /category undef
  413.     end
  414. }
  415.  
  416. /UndefineResource {
  417.     pop
  418.     dup $resource exch /key exch put
  419.     undefinefont
  420.     $resource begin
  421.     currentdict /LocalSDicts get /Font get length 0 ne {
  422.         currentdict /LocalSDicts get /Font get 
  423.         begin
  424.             currentdict $resource /key get undef
  425.         end
  426.         currentdict /LocalSDicts get /Font get 
  427.         begin
  428.             currentdict $resource /key get undef
  429.         end
  430.     } if
  431.     currentglobal {                                 % if global vm, delete
  432.         currentdict /GlobalSDicts get /Font get length 0 ne { % from global dict
  433.             currentdict /GlobalSDicts get /Font get 
  434.             begin
  435.                 currentdict $resource /key get undef
  436.             end
  437.             currentdict /GlobalSDicts get /Font get 
  438.             begin
  439.                 currentdict $resource /key get undef
  440.             end
  441.         } if
  442.     } if
  443.     $resource /key undef
  444.     end
  445. }
  446.  
  447. /FindResource {
  448.     count 2 lt {
  449.         /FindResource /stackunderflow err
  450.     } if
  451.     pop
  452.     10 dict begin
  453.     /_kkeeyy exch def
  454.  
  455.     $resource /LocalRDicts get /Font FontDirectory put
  456.     /rdict FontDirectory def
  457.     $resource /LocalSDicts get /Font get /sdict exch def
  458.  
  459.     rdict /_kkeeyy known not currentglobal and {
  460.         $resource /GlobalRDicts get /Font GlobalFontDirectory put
  461.         /rdict GlobalFontDirectory def
  462.         $resource /GlobalSDicts get /Font get /sdict exch def
  463.     } if
  464.  
  465.     rdict /_kkeeyy known not {
  466.             /global currentglobal def
  467.             { mark /_kkeeyy load userdict begin  _findfont cleartomark } stopped { 
  468.                 end
  469.                 cleartomark
  470.                 /_kkeeyy load =string cvs print 
  471.                 ( not found; using Times-Roman\r\n) print flush
  472.                 /Times-Roman _findfont 
  473.             } {
  474.                 end
  475.                 rdict /_kkeeyy load get
  476.             } ifelse
  477.  
  478.             global setglobal
  479.             %% only do this when an explicit findfont is done!!
  480.             sdict /_kkeeyy load [1 -1 true] put 
  481.     }{
  482.         rdict /_kkeeyy get
  483.     } ifelse
  484.  
  485.     end
  486. }
  487.  
  488. /DefineResource { 
  489.     pop        % the name of the category needs to be popped off
  490.     1 index exch
  491.     { xdefinefont } stopped { 
  492.         end % on the dictionary defineresource began
  493.         /DefineResource /definefont err
  494.     } if
  495.     exch
  496.     AddStatusInfo
  497. }
  498.  
  499. /AddStatusInfo {
  500.     /key exch dup type /stringtype eq {cvn} if def
  501.     currentglobal {
  502.         $resource /GlobalSDicts get /Font get  /key load [0 -1 true] put 
  503.     } if
  504.     $resource /LocalSDicts get /Font get /key load [0 -1 true] put 
  505. }
  506. >> /Category 
  507. defineresource pop
  508.  
  509. % ENCODING
  510. /Encoding
  511. <<
  512. /InstanceType /arraytype /Category /Encoding
  513. /err $resource /err get def
  514.  
  515. /ResourceForAll {
  516.     genericresourceforall
  517. }
  518.  
  519. /ResourceStatus {
  520.     count 2 lt {
  521.         /ResourceStatus /stackunderflow err
  522.     } if
  523.     $resource begin
  524.  
  525.     /category exch def
  526.     /key exch def
  527.     currentglobal {
  528.         currentdict /GlobalSDicts get category get /sdict exch def
  529.         sdict length 0 eq {
  530.             false
  531.         } {
  532.             sdict begin
  533.                 currentdict /key load known not {
  534.                     false
  535.                 } {
  536.                     currentdict /key load get {} forall
  537.                 } ifelse
  538.             end
  539.         } ifelse
  540.     } {            % local VM mode
  541.         currentdict /LocalSDicts get category get /sdict exch def
  542.         sdict length 0 eq {        % 0 length local status dict -- look at glob stat dict
  543.             currentdict /GlobalSDicts get category get length 0 eq {
  544.                 false            % 0 length global status dict
  545.             } {
  546.                 currentdict /GlobalSDicts get category get begin
  547.                     currentdict /key load known not {
  548.                         false
  549.                     } {
  550.                         currentdict /key load get {} forall
  551.                     } ifelse
  552.                 end
  553.             } ifelse
  554.         } {                    % local status dict has something in it
  555.             currentdict /LocalSDicts get category get begin
  556.                 currentdict /key load known not {        % not in the local stat dict
  557.                     end
  558.                     currentdict /GlobalSDicts get category get begin
  559.                         currentdict /key load known not {        % not in global stat dict
  560.                             false
  561.                         }{
  562.                             currentdict /key load get {} forall
  563.                         } ifelse
  564.                 } {    % found in the local dict
  565.                     currentdict /key load get {} forall
  566.                 } ifelse
  567.             end
  568.         } ifelse
  569.     } ifelse
  570.     $resource /key undef $resource /sdict undef
  571.     $resource /category undef
  572.     end
  573. }
  574.  
  575. /ResourceFileName {
  576.     (encodings/) genericresourcefile
  577. } def
  578.  
  579. /UndefineResource {
  580.     count 2 lt {
  581.         /UndefineResource /stackunderflow err
  582.     } if
  583.     $resource begin
  584.     /category exch def
  585.     /key exch def
  586.             % always delete from local vm dictionary
  587.     currentdict /LocalRDicts get category get length 0 ne {
  588.         currentdict /LocalRDicts get category get 
  589.         begin
  590.             currentdict /key load undef
  591.         end
  592.         currentdict /LocalSDicts get category get 
  593.         begin
  594.             currentdict /key load undef
  595.         end
  596.     } if
  597.     currentglobal {                                 % if global vm, delete
  598.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  599.             currentdict /GlobalRDicts get category get 
  600.             begin
  601.                 currentdict /key load undef
  602.             end
  603.             currentdict /GlobalSDicts get category get 
  604.             begin
  605.                 currentdict /key load undef
  606.             end
  607.         } if
  608.     } if
  609.     currentdict dup /key undef /category undef
  610.     end
  611. }
  612.  
  613. /FindResource {
  614.     count 2 lt {            % Must have two args.
  615.         /findencoding /stackunderflow err
  616.     } if
  617.  
  618.     exch $resource exch
  619.     /key exch dup type /arraytype eq {    % get the key.  If it's a proc,
  620.         dup xcheck {                       % stuff the array into another array
  621.             1 array astore cvx              % before defining key
  622.         } if
  623.     } if
  624.     put
  625.  
  626.     $resource /key get type /nulltype eq {  % generate a complaint if null
  627.         $resource /key get
  628.         /findencoding /typecheck err
  629.     } if
  630.     $resource /KeyAccessTest get exec % check the access of key if composite
  631.     $resource begin
  632.     /category exch def
  633.  
  634.     currentglobal {  % Check Global resource dict. If not found, check disk.
  635.         currentdict /GlobalRDicts get category get /rdict exch def
  636.         rdict key known not {
  637.             key finddiskencoding
  638.         } if
  639.     } {                                    % Check Local resource dict.
  640.         currentdict /LocalRDicts get category get /rdict exch def
  641.         rdict key known not {               % Not found. Check Global dict.
  642.             currentdict /GlobalRDicts get category get /rdict exch def
  643.             rdict key known not {            % Not found. Load into Local from disk.
  644.                 currentdict /LocalRDicts get category get /rdict exch def
  645.                 key finddiskencoding
  646.             } if
  647.         } if
  648.     } ifelse
  649.  
  650.     rdict key known not {
  651.         userdict /EncodingDirectory get key known not {
  652.             end $resource /key get /findencoding /undefinedresource err
  653.         } {
  654.             userdict /EncodingDirectory get key get
  655.         } ifelse
  656.     } {
  657.         rdict key get
  658.     } ifelse
  659.  
  660.     currentdict /rdict undef 
  661.     currentdict /category undef 
  662.     currentdict /key undef 
  663.     end
  664. }
  665.  
  666. /DefineResource { 
  667.     count 3 lt {          % check for enough args
  668.         /DefineResource /stackunderflow err
  669.     } if 
  670.     currentdict /InstanceType get
  671.     $resource begin
  672.  
  673.     /insttype exch def
  674.     /category exch def
  675.     currentglobal {
  676.         currentdict /GlobalRDicts get category get /rdict exch def
  677.         currentdict /GlobalSDicts get category get /sdict exch def
  678.         currentdict /LocalRDicts get category get /lrdict exch def
  679.         currentdict /LocalSDicts get category get /lsdict exch def
  680.     } {
  681.         currentdict /LocalRDicts get category get /rdict exch def
  682.         currentdict /LocalSDicts get category get /sdict exch def
  683.     } ifelse
  684.     /inst exch  readonly def   % make the instance readonly
  685.     /key exch def
  686.  
  687.     inst type currentdict /insttype get ne {   % check for correct datatype
  688.         end /DefineResource /typecheck err
  689.     } if 
  690.     currentglobal {           % if true vm
  691.         currentdict /inst get gcheck not { % can't store local instance into global
  692.             end /DefineResource /invalidaccess err
  693.         } if
  694.         currentdict /lrdict get /nulltype ne {     % if local dict exists
  695.             currentdict /lrdict get key undef  % delete any entry with
  696.             currentdict /lsdict get key undef  % this key
  697.         } if
  698.     } if
  699.     currentdict /rdict get key inst put          % store key, inst
  700.     currentdict /sdict get key [0 -1 true] put   % set status
  701.     inst                                         % put instance back on stack
  702.     currentdict /inst undef currentdict /key undef  % ditch local variables
  703.     currentdict /lrdict undef currentdict /lsdict undef
  704.     currentdict /rdict undef currentdict /sdict undef
  705.     currentdict /category undef currentdict /insttype undef
  706.     end
  707. }
  708. >> /Category defineresource pop
  709.  
  710. % FORM
  711. /Form 
  712. <<
  713. /InstanceType /dicttype /Category /Form 
  714. /err $resource /err get def
  715.  
  716. /ResourceForAll {
  717.     genericresourceforall
  718. }
  719.  
  720. /ResourceStatus {
  721.     count 2 lt {
  722.         /ResourceStatus /stackunderflow err
  723.     } if
  724.     $resource begin
  725.  
  726.     /category exch def
  727.     /key exch def
  728.     currentglobal {
  729.         currentdict /GlobalSDicts get category get /sdict exch def
  730.         sdict length 0 eq {
  731.             false
  732.         } {
  733.             sdict begin
  734.                 currentdict /key load known not {
  735.                     false
  736.                 } {
  737.                     currentdict /key load get {} forall
  738.                 } ifelse
  739.             end
  740.         } ifelse
  741.     } {            % local VM mode
  742.         currentdict /LocalSDicts get category get /sdict exch def
  743.         sdict length 0 eq {        % 0 length local status dict -- look at glob stat dict
  744.             currentdict /GlobalSDicts get category get length 0 eq {
  745.                 false            % 0 length global status dict
  746.             } {
  747.                 currentdict /GlobalSDicts get category get begin
  748.                     currentdict /key load known not {
  749.                         false
  750.                     } {
  751.                         currentdict /key load get {} forall
  752.                     } ifelse
  753.                 end
  754.             } ifelse
  755.         } {                    % local status dict has something in it
  756.             currentdict /LocalSDicts get category get begin
  757.                 currentdict /key load known not {        % not in the local stat dict
  758.                     end
  759.                     currentdict /GlobalSDicts get category get begin
  760.                         currentdict /key load known not {        % not in global stat dict
  761.                             false
  762.                         }{
  763.                             currentdict /key load get {} forall
  764.                         } ifelse
  765.                 } {    % found in the local dict
  766.                     currentdict /key load get {} forall
  767.                 } ifelse
  768.             end
  769.         } ifelse
  770.     } ifelse
  771.     $resource /key undef $resource /sdict undef
  772.     $resource /category undef
  773.     end
  774. }
  775.  
  776. /ResourceFileName {
  777.     (Resource/Form/) genericresourcefile
  778. }
  779.  
  780. /UndefineResource {
  781.     count 2 lt {
  782.         /UndefineResource /stackunderflow err
  783.     } if
  784.     $resource begin
  785.     /category exch def
  786.     /key exch def
  787.             % always delete from local vm dictionary
  788.     currentdict /LocalRDicts get category get length 0 ne {
  789.         currentdict /LocalRDicts get category get 
  790.         begin
  791.             currentdict /key load undef
  792.         end
  793.         currentdict /LocalSDicts get category get 
  794.         begin
  795.             currentdict /key load undef
  796.         end
  797.     } if
  798.     currentglobal {                                 % if global vm, delete
  799.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  800.             currentdict /GlobalRDicts get category get 
  801.             begin
  802.                 currentdict /key load undef
  803.             end
  804.             currentdict /GlobalSDicts get category get 
  805.             begin
  806.                 currentdict /key load undef
  807.             end
  808.         } if
  809.     } if
  810.     currentdict dup /key undef /category undef
  811.     end
  812. }
  813.  
  814. /FindResource {
  815.     count 2 lt {            % too few arguments
  816.         /findencoding /stackunderflow err
  817.     } if
  818.     exch $resource exch
  819.     /key exch dup type /arraytype eq {  % get the key.  If it's a proc,
  820.         dup xcheck {                      % stuff the array into another array
  821.             1 array astore cvx              % before defining key
  822.         } if
  823.     } if
  824.     put
  825.  
  826.     $resource /key get type /nulltype eq {         % generate a complaint if null
  827.         $resource /key get
  828.         /findencoding /typecheck err
  829.     } if
  830.     $resource /KeyAccessTest get exec      % check the access of key if composite
  831.     $resource begin
  832.     /category exch def
  833.  
  834.     currentglobal {    % if global vm active
  835.         currentdict /GlobalRDicts get category get /rdict exch def
  836.     } {                % local vm, check local vm, then global
  837.         currentdict /LocalRDicts get category get length 0 eq {
  838.             currentdict /GlobalRDicts get category get length 0 eq {
  839.                     % here we will later insert code to search for files containing
  840.                     % the stuff
  841.                 end $resource /key get /findencoding /undefinedresource err
  842.             } if
  843.             currentdict /GlobalRDicts get category get /rdict exch def
  844.         } {
  845.             currentdict /LocalRDicts get category get /rdict exch def
  846.         } ifelse
  847.     } ifelse
  848.     rdict begin 
  849.         currentdict /key load known not { % didn't find in the first dict search
  850.             end
  851.             currentglobal {      % if global vm, all done
  852.                 % here we will later insert code to search for files containing
  853.                 % the stuff.  Be sure to update the ResourceStatusDict also !!
  854.                 end $resource /key get /findencoding /undefinedresource err
  855.             } if
  856.             currentdict /GlobalRDicts get category get length 0 eq {
  857.                 end /key load /findencoding /undefinedresource err     % all done
  858.             } if
  859.                     % now search the global dictionary */
  860.             currentdict /GlobalRDicts get category get /rdict exch def
  861.             rdict /key load known not {
  862.                 end $resource /key load /findencoding /undefinedresource err
  863.             } if
  864.             currentdict /rdict get
  865.             begin
  866.         } if
  867.             
  868.     currentdict /key load get
  869.     end 
  870.     currentdict /key undef
  871.     currentdict /rdict undef
  872.     currentdict /category undef
  873.     end %$resource
  874. }
  875.  
  876. /DefineResource { 
  877.     count 3 lt {          % check for enough args
  878.         /DefineResource /stackunderflow err
  879.     } if 
  880.     currentdict /InstanceType get
  881.     $resource begin
  882.  
  883.     /insttype exch def
  884.     /category exch def
  885.     currentglobal {
  886.         currentdict /GlobalRDicts get category get /rdict exch def
  887.         currentdict /GlobalSDicts get category get /sdict exch def
  888.         currentdict /LocalRDicts get category get /lrdict exch put
  889.         currentdict /LocalSDicts get category get /lsdict exch put
  890.     } {
  891.         currentdict /LocalRDicts get category get /rdict exch def
  892.         currentdict /LocalSDicts get category get /sdict exch def
  893.     } ifelse
  894.     /inst exch readonly def   % make the instance readonly
  895.     inst type currentdict /insttype get ne {   % check for correct datatype
  896.         end /DefineResource /typecheck err
  897.     } if 
  898.     /key exch def
  899.     currentglobal {           % if true vm
  900.         currentdict /inst get gcheck not { % can't store local instance into global
  901.             end /DefineResource /invalidaccess err
  902.         } if
  903.         currentdict /lrdict get /nulltype ne {     % if local dict exists
  904.             currentdict /lrdict get key undef        % delete any entry with
  905.             currentdict /lsdict get key undef  % this key
  906.         } if
  907.     } if
  908.     currentdict /rdict get key inst put          % store key, inst
  909.     currentdict /sdict get key [0 -1 true] put   % set status
  910.     inst                                         % put instance back on stack
  911.     currentdict /inst undef currentdict /key undef  % ditch local variables
  912.     currentdict /lrdict undef currentdict /lsdict undef
  913.     currentdict /rdict undef currentdict /sdict undef
  914.     currentdict /category undef currentdict /insttype undef
  915.     end
  916. }
  917. >> /Category defineresource pop
  918.  
  919. % PATTERN
  920. /Pattern
  921. <<
  922. /InstanceType /dicttype /Category /Pattern
  923. /err $resource /err get def
  924.  
  925. /ResourceForAll {
  926.     genericresourceforall
  927. }
  928.  
  929. /ResourceStatus {
  930.     count 2 lt {
  931.         /ResourceStatus /stackunderflow err
  932.     } if
  933.     $resource begin
  934.  
  935.     /category exch def
  936.     /key exch def
  937.     currentglobal {
  938.         currentdict /GlobalSDicts get category get /sdict exch def
  939.         sdict length 0 eq {
  940.             false
  941.         } {
  942.             sdict begin
  943.                 currentdict /key load known not {
  944.                     false
  945.                 } {
  946.                     currentdict /key load get {} forall
  947.                 } ifelse
  948.             end
  949.         } ifelse
  950.     } {            % local VM mode
  951.         currentdict /LocalSDicts get category get /sdict exch def
  952.         sdict length 0 eq {        % 0 length local status dict -- look at glob stat dict
  953.             currentdict /GlobalSDicts get category get length 0 eq {
  954.                 false            % 0 length global status dict
  955.             } {
  956.                 currentdict /GlobalSDicts get category get begin
  957.                     currentdict /key load known not {
  958.                         false
  959.                     } {
  960.                         currentdict /key load get {} forall
  961.                     } ifelse
  962.                 end
  963.             } ifelse
  964.         } {                    % local status dict has something in it
  965.             currentdict /LocalSDicts get category get begin
  966.                 currentdict /key load known not {        % not in the local stat dict
  967.                     end
  968.                     currentdict /GlobalSDicts get category get begin
  969.                         currentdict /key load known not {        % not in global stat dict
  970.                             false
  971.                         }{
  972.                             currentdict /key load get {} forall
  973.                         } ifelse
  974.                 } {    % found in the local dict
  975.                     currentdict /key load get {} forall
  976.                 } ifelse
  977.             end
  978.         } ifelse
  979.     } ifelse
  980.     $resource /key undef $resource /sdict undef
  981.     $resource /category undef
  982.     end
  983. }
  984.  
  985. /ResourceFileName {
  986.     (Resource/Pattern/) genericresourcefile
  987. }
  988.  
  989. /UndefineResource {
  990.     count 2 lt {
  991.         /UndefineResource /stackunderflow err
  992.     } if
  993.     $resource begin
  994.     /category exch def
  995.     /key exch def
  996.             % always delete from local vm dictionary
  997.     currentdict /LocalRDicts get category get length 0 ne {
  998.         currentdict /LocalRDicts get category get 
  999.         begin
  1000.             currentdict /key load undef
  1001.         end
  1002.         currentdict /LocalSDicts get category get 
  1003.         begin
  1004.             currentdict /key load undef
  1005.         end
  1006.     } if
  1007.     currentglobal {                                 % if global vm, delete
  1008.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  1009.             currentdict /GlobalRDicts get category get 
  1010.             begin
  1011.                 currentdict /key load undef
  1012.             end
  1013.             currentdict /GlobalSDicts get category get 
  1014.             begin
  1015.                 currentdict /key load undef
  1016.             end
  1017.         } if
  1018.     } if
  1019.     currentdict dup /key undef /category undef
  1020.     end
  1021. }
  1022.  
  1023. /FindResource {
  1024.     count 2 lt {            % too few arguments
  1025.         /findencoding /stackunderflow err
  1026.     } if
  1027.     exch $resource exch
  1028.     /key exch dup type /arraytype eq {  % get the key.  If it's a proc,
  1029.         dup xcheck {                      % stuff the array into another array
  1030.             1 array astore cvx              % before defining key
  1031.         } if
  1032.     } if
  1033.     put
  1034.  
  1035.     $resource /key get type /nulltype eq {         % generate a complaint if null
  1036.         $resource /key get
  1037.         /findencoding /typecheck err
  1038.     } if
  1039.     $resource /KeyAccessTest get exec      % check the access of key if composite
  1040.     $resource begin
  1041.     /category exch def
  1042.  
  1043.     currentglobal {    % if global vm active
  1044.         currentdict /GlobalRDicts get category get /rdict exch def
  1045.     } {                % local vm, check local vm, then global
  1046.         currentdict /LocalRDicts get category get length 0 eq {
  1047.             currentdict /GlobalRDicts get category get length 0 eq {
  1048.                     % here we will later insert code to search for files containing
  1049.                     % the stuff
  1050.                 end $resource /key get /findencoding /undefinedresource err
  1051.             } if
  1052.             currentdict /GlobalRDicts get category get /rdict exch def
  1053.         } {
  1054.             currentdict /LocalRDicts get category get /rdict exch def
  1055.         } ifelse
  1056.     } ifelse
  1057.     rdict begin 
  1058.         currentdict /key load known not { % didn't find in the first dict search
  1059.             end
  1060.             currentglobal {      % if global vm, all done
  1061.                 % here we will later insert code to search for files containing
  1062.                 % the stuff.  Be sure to update the ResourceStatusDict also !!
  1063.                 end $resource /key get /findencoding /undefinedresource err
  1064.             } if
  1065.             currentdict /GlobalRDicts get category get length 0 eq {
  1066.                 end /key load /findencoding /undefinedresource err     % all done
  1067.             } if
  1068.                     % now search the global dictionary */
  1069.             currentdict /GlobalRDicts get category get /rdict exch def
  1070.             rdict /key load known not {
  1071.                 end $resource /key load /findencoding /undefinedresource err
  1072.             } if
  1073.             currentdict /rdict get
  1074.             begin
  1075.         } if
  1076.             
  1077.     currentdict /key load get
  1078.     end 
  1079.     currentdict /key undef
  1080.     currentdict /rdict undef
  1081.     currentdict /category undef
  1082.     end %$resource
  1083. }
  1084.  
  1085. /DefineResource { 
  1086.     count 3 lt {          % check for enough args
  1087.         /DefineResource /stackunderflow err
  1088.     } if 
  1089.     currentdict /InstanceType get
  1090.     $resource begin
  1091.  
  1092.     /insttype exch def
  1093.     /category exch def
  1094.     currentglobal {
  1095.         currentdict /GlobalRDicts get category get /rdict exch def
  1096.         currentdict /GlobalSDicts get category get /sdict exch def
  1097.         currentdict /LocalRDicts get category get /lrdict exch put
  1098.         currentdict /LocalSDicts get category get /lsdict exch put
  1099.     } {
  1100.         currentdict /LocalRDicts get category get /rdict exch def
  1101.         currentdict /LocalSDicts get category get /sdict exch def
  1102.     } ifelse
  1103.     /inst exch readonly def   % make the instance readonly
  1104.     inst type currentdict /insttype get ne {   % check for correct datatype
  1105.         end /DefineResource /typecheck err
  1106.     } if 
  1107.     /key exch def
  1108.     currentglobal {           % if true vm
  1109.         currentdict /inst get gcheck not { % can't store local instance into global
  1110.             end /DefineResource /invalidaccess err
  1111.         } if
  1112.         currentdict /lrdict get /nulltype ne {     % if local dict exists
  1113.             currentdict /ldict get key undef        % delete any entry with
  1114.             currentdict /lsdict get key undef  % this key
  1115.         } if
  1116.     } if
  1117.     currentdict /rdict get key inst put          % store key, inst
  1118.     currentdict /sdict get key [0 -1 true] put   % set status
  1119.     inst                                         % put instance back on stack
  1120.     currentdict /inst undef currentdict /key undef  % ditch local variables
  1121.     currentdict /lrdict undef currentdict /lsdict undef
  1122.     currentdict /rdict undef currentdict /sdict undef
  1123.     currentdict /category undef currentdict /insttype undef
  1124.     end
  1125. }
  1126. >> /Category defineresource pop
  1127.  
  1128. % PROCSET
  1129.  
  1130. /ProcSet
  1131. <<
  1132. /InstanceType /dicttype /Category /ProcSet
  1133. /err $resource /err get def
  1134.  
  1135. /ResourceForAll {
  1136.     genericresourceforall
  1137. }
  1138.  
  1139. /ResourceStatus {
  1140.     count 2 lt {
  1141.         /ResourceStatus /stackunderflow err
  1142.     } if
  1143.     $resource begin
  1144.  
  1145.     /category exch def
  1146.     /key exch def
  1147.     currentglobal {
  1148.         currentdict /GlobalSDicts get category get /sdict exch def
  1149.         sdict length 0 eq {
  1150.             false
  1151.         } {
  1152.             sdict begin
  1153.                 currentdict /key load known not {
  1154.                     false
  1155.                 } {
  1156.                     currentdict /key load get {} forall
  1157.                 } ifelse
  1158.             end
  1159.         } ifelse
  1160.     } {            % local VM mode
  1161.         currentdict /LocalSDicts get category get /sdict exch def
  1162.         sdict length 0 eq {        % 0 length local status dict -- look at glob stat dict
  1163.             currentdict /GlobalSDicts get category get length 0 eq {
  1164.                 false            % 0 length global status dict
  1165.             } {
  1166.                 currentdict /GlobalSDicts get category get begin
  1167.                     currentdict /key load known not {
  1168.                         false
  1169.                     } {
  1170.                         currentdict /key load get {} forall
  1171.                     } ifelse
  1172.                 end
  1173.             } ifelse
  1174.         } {                    % local status dict has something in it
  1175.             currentdict /LocalSDicts get category get begin
  1176.                 currentdict /key load known not {        % not in the local stat dict
  1177.                     end
  1178.                     currentdict /GlobalSDicts get category get begin
  1179.                         currentdict /key load known not {        % not in global stat dict
  1180.                             false
  1181.                         }{
  1182.                             currentdict /key load get {} forall
  1183.                         } ifelse
  1184.                 } {    % found in the local dict
  1185.                     currentdict /key load get {} forall
  1186.                 } ifelse
  1187.             end
  1188.         } ifelse
  1189.     } ifelse
  1190.     $resource /key undef $resource /sdict undef
  1191.     $resource /category undef
  1192.     end
  1193. }
  1194.  
  1195. /ResourceFileName {
  1196.     (Resource/ProcSet/) genericresourcefile
  1197. }
  1198.  
  1199. /UndefineResource {
  1200.     count 2 lt {
  1201.         /UndefineResource /stackunderflow err
  1202.     } if
  1203.     $resource begin
  1204.     /category exch def
  1205.     /key exch def
  1206.             % always delete from local vm dictionary
  1207.     currentdict /LocalRDicts get category get length 0 ne {
  1208.         currentdict /LocalRDicts get category get 
  1209.         begin
  1210.             currentdict /key load undef
  1211.         end
  1212.         currentdict /LocalSDicts get category get 
  1213.         begin
  1214.             currentdict /key load undef
  1215.         end
  1216.     } if
  1217.     currentglobal {                                 % if global vm, delete
  1218.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  1219.             currentdict /GlobalRDicts get category get 
  1220.             begin
  1221.                 currentdict /key load undef
  1222.             end
  1223.             currentdict /GlobalSDicts get category get 
  1224.             begin
  1225.                 currentdict /key load undef
  1226.             end
  1227.         } if
  1228.     } if
  1229.     currentdict dup /key undef /category undef
  1230.     end
  1231. }
  1232.  
  1233. /FindResource {
  1234.     count 2 lt {            % too few arguments
  1235.         /findencoding /stackunderflow err
  1236.     } if
  1237.     exch $resource exch
  1238.     /key exch dup type /arraytype eq {  % get the key.  If it's a proc,
  1239.         dup xcheck {                      % stuff the array into another array
  1240.             1 array astore cvx              % before defining key
  1241.         } if
  1242.     } if
  1243.     put
  1244.  
  1245.     $resource /key get type /nulltype eq {         % generate a complaint if null
  1246.         $resource /key get
  1247.         /findencoding /typecheck err
  1248.     } if
  1249.     $resource /KeyAccessTest get exec      % check the access of key if composite
  1250.     $resource begin
  1251.     /category exch def
  1252.  
  1253.     currentglobal {    % if global vm active
  1254.         currentdict /GlobalRDicts get category get /rdict exch def
  1255.     } {                % local vm, check local vm, then global
  1256.         currentdict /LocalRDicts get category get length 0 eq {
  1257.             currentdict /GlobalRDicts get category get length 0 eq {
  1258.                     % here we will later insert code to search for files containing
  1259.                     % the stuff
  1260.                 end $resource /key get /findencoding /undefinedresource err
  1261.             } if
  1262.             currentdict /GlobalRDicts get category get /rdict exch def
  1263.         } {
  1264.             currentdict /LocalRDicts get category get /rdict exch def
  1265.         } ifelse
  1266.     } ifelse
  1267.     rdict begin 
  1268.         currentdict /key load known not { % didn't find in the first dict search
  1269.             end
  1270.             currentglobal {      % if global vm, all done
  1271.                 % here we will later insert code to search for files containing
  1272.                 % the stuff.  Be sure to update the ResourceStatusDict also !!
  1273.                 end $resource /key get /findencoding /undefinedresource err
  1274.             } if
  1275.             currentdict /GlobalRDicts get category get length 0 eq {
  1276.                 end /key load /findencoding /undefinedresource err     % all done
  1277.             } if
  1278.                     % now search the global dictionary */
  1279.             currentdict /GlobalRDicts get category get /rdict exch def
  1280.             rdict /key load known not {
  1281.                 end $resource /key load /findencoding /undefinedresource err
  1282.             } if
  1283.             currentdict /rdict get
  1284.             begin
  1285.         } if
  1286.             
  1287.     currentdict /key load get
  1288.     end 
  1289.     currentdict /key undef
  1290.     currentdict /rdict undef
  1291.     currentdict /category undef
  1292.     end %$resource
  1293. }
  1294.  
  1295. /DefineResource { 
  1296.     count 3 lt {          % check for enough args
  1297.         /DefineResource /stackunderflow err
  1298.     } if 
  1299.     currentdict /InstanceType get
  1300.     $resource begin
  1301.  
  1302.     /insttype exch def
  1303.     /category exch def
  1304.     currentglobal {
  1305.         currentdict /GlobalRDicts get category get /rdict exch def
  1306.         currentdict /GlobalSDicts get category get /sdict exch def
  1307.         currentdict /LocalRDicts get category get /lrdict exch def
  1308.         currentdict /LocalSDicts get category get /lsdict exch def
  1309.     } {
  1310.         currentdict /LocalRDicts get category get /rdict exch def
  1311.         currentdict /LocalSDicts get category get /sdict exch def
  1312.     } ifelse
  1313.     /inst exch readonly def   % make the instance readonly
  1314.     inst type currentdict /insttype get ne {   % check for correct datatype
  1315.         end /DefineResource /typecheck err
  1316.     } if 
  1317.     /key exch def
  1318.     currentglobal {           % if true vm
  1319.         currentdict /inst get gcheck not { % can't store local instance into global
  1320.             end /DefineResource /invalidaccess err
  1321.         } if
  1322.         currentdict /lrdict get /nulltype ne {     % if local dict exists
  1323.             currentdict /lrdict get key undef        % delete any entry with
  1324.             currentdict /lsdict get key undef  % this key
  1325.         } if
  1326.     } if
  1327.     currentdict /rdict get key inst put          % store key, inst
  1328.     currentdict /sdict get key [0 -1 true] put   % set status
  1329.     inst                                         % put instance back on stack
  1330.     currentdict /inst undef currentdict /key undef  % ditch local variables
  1331.     currentdict /lrdict undef currentdict /lsdict undef
  1332.     currentdict /rdict undef currentdict /sdict undef
  1333.     currentdict /category undef currentdict /insttype undef
  1334.     end
  1335. }
  1336. >> /Category defineresource pop
  1337.  
  1338. % COLORSPACE
  1339. /ColorSpace
  1340. <<
  1341. /InstanceType /arraytype /Category /ColorSpace
  1342. /err $resource /err get def
  1343.  
  1344. /ResourceForAll {
  1345.     genericresourceforall
  1346. }
  1347.  
  1348. /ResourceStatus {
  1349.     count 2 lt {
  1350.         /ResourceStatus /stackunderflow err
  1351.     } if
  1352.     $resource begin
  1353.  
  1354.     /category exch def
  1355.     /key exch def
  1356.     currentglobal {
  1357.         currentdict /GlobalSDicts get category get /sdict exch def
  1358.         sdict length 0 eq {
  1359.             false
  1360.         } {
  1361.             sdict begin
  1362.                 currentdict /key load known not {
  1363.                     false
  1364.                 } {
  1365.                     currentdict /key load get {} forall
  1366.                 } ifelse
  1367.             end
  1368.         } ifelse
  1369.     } {            % local VM mode
  1370.         currentdict /LocalSDicts get category get /sdict exch def
  1371.         sdict length 0 eq {        % 0 length local status dict -- look at glob stat dict
  1372.             currentdict /GlobalSDicts get category get length 0 eq {
  1373.                 false            % 0 length global status dict
  1374.             } {
  1375.                 currentdict /GlobalSDicts get category get begin
  1376.                     currentdict /key load known not {
  1377.                         false
  1378.                     } {
  1379.                         currentdict /key load get {} forall
  1380.                     } ifelse
  1381.                 end
  1382.             } ifelse
  1383.         } {                    % local status dict has something in it
  1384.             currentdict /LocalSDicts get category get begin
  1385.                 currentdict /key load known not {        % not in the local stat dict
  1386.                     end
  1387.                     currentdict /GlobalSDicts get category get begin
  1388.                         currentdict /key load known not {        % not in global stat dict
  1389.                             false
  1390.                         }{
  1391.                             currentdict /key load get {} forall
  1392.                         } ifelse
  1393.                 } {    % found in the local dict
  1394.                     currentdict /key load get {} forall
  1395.                 } ifelse
  1396.             end
  1397.         } ifelse
  1398.     } ifelse
  1399.     $resource /key undef $resource /sdict undef
  1400.     $resource /category undef
  1401.     end
  1402. }
  1403.  
  1404. /ResourceFileName {
  1405.     (Resource/ColorSpace/) genericresourcefile
  1406. }
  1407.  
  1408. /UndefineResource {
  1409.     count 2 lt {
  1410.         /UndefineResource /stackunderflow err
  1411.     } if
  1412.     $resource begin
  1413.     /category exch def
  1414.     /key exch def
  1415.             % always delete from local vm dictionary
  1416.     currentdict /LocalRDicts get category get length 0 ne {
  1417.         currentdict /LocalRDicts get category get 
  1418.         begin
  1419.             currentdict /key load undef
  1420.         end
  1421.         currentdict /LocalSDicts get category get 
  1422.         begin
  1423.             currentdict /key load undef
  1424.         end
  1425.     } if
  1426.     currentglobal {                                 % if global vm, delete
  1427.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  1428.             currentdict /GlobalRDicts get category get 
  1429.             begin
  1430.                 currentdict /key load undef
  1431.             end
  1432.             currentdict /GlobalSDicts get category get 
  1433.             begin
  1434.                 currentdict /key load undef
  1435.             end
  1436.         } if
  1437.     } if
  1438.     currentdict dup /key undef /category undef
  1439.     end
  1440. }
  1441.  
  1442. /FindResource {
  1443.     count 2 lt {            % too few arguments
  1444.         /findencoding /stackunderflow err
  1445.     } if
  1446.     exch $resource exch
  1447.     /key exch dup type /arraytype eq {  % get the key.  If it's a proc,
  1448.         dup xcheck {                      % stuff the array into another array
  1449.             1 array astore cvx              % before defining key
  1450.         } if
  1451.     } if
  1452.     put
  1453.  
  1454.     $resource /key get type /nulltype eq {         % generate a complaint if null
  1455.         $resource /key get
  1456.         /findencoding /typecheck err
  1457.     } if
  1458.     $resource /KeyAccessTest get exec      % check the access of key if composite
  1459.     $resource begin
  1460.     /category exch def
  1461.  
  1462.     currentglobal {    % if global vm active
  1463.         currentdict /GlobalRDicts get category get /rdict exch def
  1464.     } {                % local vm, check local vm, then global
  1465.         currentdict /LocalRDicts get category get length 0 eq {
  1466.             currentdict /GlobalRDicts get category get length 0 eq {
  1467.                     % here we will later insert code to search for files containing
  1468.                     % the stuff
  1469.                 end $resource /key get /findencoding /undefinedresource err
  1470.             } if
  1471.             currentdict /GlobalRDicts get category get /rdict exch def
  1472.         } {
  1473.             currentdict /LocalRDicts get category get /rdict exch def
  1474.         } ifelse
  1475.     } ifelse
  1476.     rdict begin 
  1477.         currentdict $resource /key get known not { % didn't find in the first dict search
  1478.             end
  1479.             currentglobal {      % if global vm, all done
  1480.                 % here we will later insert code to search for files containing
  1481.                 % the stuff.  Be sure to update the ResourceStatusDict also !!
  1482.                 end $resource /key get /findencoding /undefinedresource err
  1483.             } if
  1484.             currentdict /GlobalRDicts get category get length 0 eq {
  1485.                 end $resource /key get /findencoding /undefinedresource err     % all done
  1486.             } if
  1487.                     % now search the global dictionary */
  1488.             currentdict /GlobalRDicts get category get /rdict exch def
  1489.             rdict $resource /key get known not {
  1490.                 end $resource dup /key get /findencoding /undefinedresource err
  1491.             } if
  1492.             currentdict /rdict get
  1493.             begin
  1494.         } if
  1495.             
  1496.     currentdict $resource /key get get
  1497.     end 
  1498.     currentdict /key undef
  1499.     currentdict /rdict undef
  1500.     currentdict /category undef
  1501.     end %$resource
  1502. }
  1503.  
  1504. /DefineResource { 
  1505.     count 3 lt {          % check for enough args
  1506.         /DefineResource /stackunderflow err
  1507.     } if 
  1508.     currentdict /InstanceType get
  1509.     $resource begin
  1510.  
  1511.     /insttype exch def
  1512.     /category exch def
  1513.     currentglobal {
  1514.         currentdict /GlobalRDicts get category get /rdict exch def
  1515.         currentdict /GlobalSDicts get category get /sdict exch def
  1516.         currentdict /LocalRDicts get category get /lrdict exch put
  1517.         currentdict /LocalSDicts get category get /lsdict exch put
  1518.     } {
  1519.         currentdict /LocalRDicts get category get /rdict exch def
  1520.         currentdict /LocalSDicts get category get /sdict exch def
  1521.     } ifelse
  1522.     /inst exch readonly def   % make the instance readonly
  1523.     inst type currentdict /insttype get ne {   % check for correct datatype
  1524.         end /DefineResource /typecheck err
  1525.     } if 
  1526.     /key exch def
  1527.     currentglobal {           % if true vm
  1528.         currentdict /inst get gcheck not { % can't store local instance into global
  1529.             end /DefineResource /invalidaccess err
  1530.         } if
  1531.         currentdict /lrdict get /nulltype ne {     % if local dict exists
  1532.             currentdict /lrdict get key undef        % delete any entry with
  1533.             currentdict /lsdict get key undef  % this key
  1534.         } if
  1535.     } if
  1536.     currentdict /rdict get key inst put          % store key, inst
  1537.     currentdict /sdict get key [0 -1 true] put   % set status
  1538.     inst                                         % put instance back on stack
  1539.     currentdict /inst undef currentdict /key undef  % ditch local variables
  1540.     currentdict /lrdict undef currentdict /lsdict undef
  1541.     currentdict /rdict undef currentdict /sdict undef
  1542.     end
  1543. }
  1544. >> /Category defineresource pop
  1545.  
  1546. % HALFTONE
  1547. /Halftone
  1548. <<
  1549. /InstanceType /dicttype /Category /Halftone
  1550. /err $resource /err get def
  1551.  
  1552. /ResourceForAll {
  1553.     genericresourceforall
  1554. }
  1555.  
  1556. /ResourceStatus {
  1557.     count 2 lt {
  1558.         /ResourceStatus /stackunderflow err
  1559.     } if
  1560.     $resource begin
  1561.  
  1562.     /category exch def
  1563.     /key exch def
  1564.     currentglobal {
  1565.         currentdict /GlobalSDicts get category get /sdict exch def
  1566.         sdict length 0 eq {
  1567.             false
  1568.         } {
  1569.             sdict begin
  1570.                 currentdict /key load known not {
  1571.                     false
  1572.                 } {
  1573.                     currentdict /key load get {} forall
  1574.                 } ifelse
  1575.             end
  1576.         } ifelse
  1577.     } {            % local VM mode
  1578.         currentdict /LocalSDicts get category get /sdict exch def
  1579.         sdict length 0 eq {        % 0 length local status dict -- look at glob stat dict
  1580.             currentdict /GlobalSDicts get category get length 0 eq {
  1581.                 false            % 0 length global status dict
  1582.             } {
  1583.                 currentdict /GlobalSDicts get category get begin
  1584.                     currentdict /key load known not {
  1585.                         false
  1586.                     } {
  1587.                         currentdict /key load get {} forall
  1588.                     } ifelse
  1589.                 end
  1590.             } ifelse
  1591.         } {                    % local status dict has something in it
  1592.             currentdict /LocalSDicts get category get begin
  1593.                 currentdict /key load known not {        % not in the local stat dict
  1594.                     end
  1595.                     currentdict /GlobalSDicts get category get begin
  1596.                         currentdict /key load known not {        % not in global stat dict
  1597.                             false
  1598.                         }{
  1599.                             currentdict /key load get {} forall
  1600.                         } ifelse
  1601.                 } {    % found in the local dict
  1602.                     currentdict /key load get {} forall
  1603.                 } ifelse
  1604.             end
  1605.         } ifelse
  1606.     } ifelse
  1607.     $resource /key undef $resource /sdict undef
  1608.     $resource /category undef
  1609.     end
  1610. }
  1611.  
  1612. /ResourceFileName {
  1613.     (Resource/Halftone/) genericresourcefile
  1614. }
  1615.  
  1616. /UndefineResource {
  1617.     count 2 lt {
  1618.         /UndefineResource /stackunderflow err
  1619.     } if
  1620.     $resource begin
  1621.     /category exch def
  1622.     /key exch def
  1623.             % always delete from local vm dictionary
  1624.     currentdict /LocalRDicts get category get length 0 ne {
  1625.         currentdict /LocalRDicts get category get 
  1626.         begin
  1627.             currentdict /key load undef
  1628.         end
  1629.         currentdict /LocalSDicts get category get 
  1630.         begin
  1631.             currentdict /key load undef
  1632.         end
  1633.     } if
  1634.     currentglobal {                                 % if global vm, delete
  1635.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  1636.             currentdict /GlobalRDicts get category get 
  1637.             begin
  1638.                 currentdict /key load undef
  1639.             end
  1640.             currentdict /GlobalSDicts get category get 
  1641.             begin
  1642.                 currentdict /key load undef
  1643.             end
  1644.         } if
  1645.     } if
  1646.     currentdict dup /key undef /category undef
  1647.     end
  1648. }
  1649.  
  1650. /FindResource {
  1651.     count 2 lt {            % too few arguments
  1652.         /findencoding /stackunderflow err
  1653.     } if
  1654.     exch $resource exch
  1655.     /key exch dup type /arraytype eq {  % get the key.  If it's a proc,
  1656.         dup xcheck {                      % stuff the array into another array
  1657.             1 array astore cvx              % before defining key
  1658.         } if
  1659.     } if
  1660.     put
  1661.  
  1662.     $resource /key get type /nulltype eq {         % generate a complaint if null
  1663.         $resource /key get
  1664.         /findencoding /typecheck err
  1665.     } if
  1666.     $resource /KeyAccessTest get exec      % check the access of key if composite
  1667.     $resource begin
  1668.     /category exch def
  1669.  
  1670.     currentglobal {    % if global vm active
  1671.         currentdict /GlobalRDicts get category get /rdict exch def
  1672.     } {                % local vm, check local vm, then global
  1673.         currentdict /LocalRDicts get category get length 0 eq {
  1674.             currentdict /GlobalRDicts get category get length 0 eq {
  1675.                     % here we will later insert code to search for files containing
  1676.                     % the stuff
  1677.                 end $resource /key get /findencoding /undefinedresource err
  1678.             } if
  1679.             currentdict /GlobalRDicts get category get /rdict exch def
  1680.         } {
  1681.             currentdict /LocalRDicts get category get /rdict exch def
  1682.         } ifelse
  1683.     } ifelse
  1684.     rdict begin 
  1685.         currentdict $resource /key get known not { % didn't find in the first dict search
  1686.             end
  1687.             currentglobal {      % if global vm, all done
  1688.                 % here we will later insert code to search for files containing
  1689.                 % the stuff.  Be sure to update the ResourceStatusDict also !!
  1690.                 end $resource /key get /findencoding /undefinedresource err
  1691.             } if
  1692.             currentdict /GlobalRDicts get category get length 0 eq {
  1693.                 end $resource /key get /findencoding /undefinedresource err     % all done
  1694.             } if
  1695.                     % now search the global dictionary */
  1696.             currentdict /GlobalRDicts get category get /rdict exch def
  1697.             rdict $resource /key get known not {
  1698.                 end $resource dup /key get /findencoding /undefinedresource err
  1699.             } if
  1700.             currentdict /rdict get
  1701.             begin
  1702.         } if
  1703.             
  1704.     currentdict $resource /key get get
  1705.     end 
  1706.     currentdict /key undef
  1707.     currentdict /rdict undef
  1708.     currentdict /category undef
  1709.     end %$resource
  1710. }
  1711.  
  1712. /DefineResource { 
  1713.     count 3 lt {          % check for enough args
  1714.         /DefineResource /stackunderflow err
  1715.     } if 
  1716.     currentdict /InstanceType get
  1717.     $resource begin
  1718.  
  1719.     /insttype exch def
  1720.     /category exch def
  1721.     currentglobal {
  1722.         currentdict /GlobalRDicts get category get /rdict exch def
  1723.         currentdict /GlobalSDicts get category get /sdict exch def
  1724.         currentdict /LocalRDicts get category get /lrdict exch put
  1725.         currentdict /LocalSDicts get category get /lsdict exch put
  1726.     } {
  1727.         currentdict /LocalRDicts get category get /rdict exch def
  1728.         currentdict /LocalSDicts get category get /sdict exch def
  1729.     } ifelse
  1730.     /inst exch readonly def   % make the instance readonly
  1731.     inst type currentdict /insttype get ne {   % check for correct datatype
  1732.         end /DefineResource /typecheck err
  1733.     } if 
  1734.     /key exch def
  1735.     currentglobal {           % if true vm
  1736.         currentdict /inst get gcheck not { % can't store local instance into global
  1737.             end /DefineResource /invalidaccess err
  1738.         } if
  1739.         currentdict /lrdict get /nulltype ne {     % if local dict exists
  1740.             currentdict /lrdict get key undef        % delete any entry with
  1741.             currentdict /lsdict get key undef  % this key
  1742.         } if
  1743.     } if
  1744.     currentdict /rdict get key inst put          % store key, inst
  1745.     currentdict /sdict get key [0 -1 true] put   % set status
  1746.     inst                                         % put instance back on stack
  1747.     currentdict /inst undef currentdict /key undef  % ditch local variables
  1748.     currentdict /lrdict undef currentdict /lsdict undef
  1749.     currentdict /rdict undef currentdict /sdict undef
  1750.     end
  1751. }
  1752. >> /Category defineresource pop
  1753.  
  1754. % COLORRENDERING
  1755. /ColorRendering
  1756. <<
  1757. /InstanceType /dicttype /Category /ColorRendering
  1758. /err $resource /err get def
  1759.  
  1760. /ResourceForAll {
  1761.     genericresourceforall
  1762. }
  1763.  
  1764. /ResourceStatus {
  1765.     count 2 lt {
  1766.         /ResourceStatus /stackunderflow err
  1767.     } if
  1768.     $resource begin
  1769.  
  1770.     /category exch def
  1771.     /key exch def
  1772.     currentglobal {
  1773.         currentdict /GlobalSDicts get category get /sdict exch def
  1774.         sdict length 0 eq {
  1775.             false
  1776.         } {
  1777.             sdict begin
  1778.                 currentdict /key load known not {
  1779.                     false
  1780.                 } {
  1781.                     currentdict /key load get {} forall
  1782.                 } ifelse
  1783.             end
  1784.         } ifelse
  1785.     } {            % local VM mode
  1786.         currentdict /LocalSDicts get category get /sdict exch def
  1787.         sdict length 0 eq {        % 0 length local status dict -- look at glob stat dict
  1788.             currentdict /GlobalSDicts get category get length 0 eq {
  1789.                 false            % 0 length global status dict
  1790.             } {
  1791.                 currentdict /GlobalSDicts get category get begin
  1792.                     currentdict /key load known not {
  1793.                         false
  1794.                     } {
  1795.                         currentdict /key load get {} forall
  1796.                     } ifelse
  1797.                 end
  1798.             } ifelse
  1799.         } {                    % local status dict has something in it
  1800.             currentdict /LocalSDicts get category get begin
  1801.                 currentdict /key load known not {        % not in the local stat dict
  1802.                     end
  1803.                     currentdict /GlobalSDicts get category get begin
  1804.                         currentdict /key load known not {        % not in global stat dict
  1805.                             false
  1806.                         }{
  1807.                             currentdict /key load get {} forall
  1808.                         } ifelse
  1809.                 } {    % found in the local dict
  1810.                     currentdict /key load get {} forall
  1811.                 } ifelse
  1812.             end
  1813.         } ifelse
  1814.     } ifelse
  1815.     $resource /key undef $resource /sdict undef
  1816.     $resource /category undef
  1817.     end
  1818. }
  1819.  
  1820. /ResourceFileName {
  1821.     (Resource/ColorRendering/) genericresourcefile
  1822. }
  1823.  
  1824. /UndefineResource {
  1825.     count 2 lt {
  1826.         /UndefineResource /stackunderflow err
  1827.     } if
  1828.     $resource begin
  1829.     /category exch def
  1830.     /key exch def
  1831.             % always delete from local vm dictionary
  1832.     currentdict /LocalRDicts get category get length 0 ne {
  1833.         currentdict /LocalRDicts get category get 
  1834.         begin
  1835.             currentdict /key load undef
  1836.         end
  1837.         currentdict /LocalSDicts get category get 
  1838.         begin
  1839.             currentdict /key load undef
  1840.         end
  1841.     } if
  1842.     currentglobal {                                 % if global vm, delete
  1843.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  1844.             currentdict /GlobalRDicts get category get 
  1845.             begin
  1846.                 currentdict /key load undef
  1847.             end
  1848.             currentdict /GlobalSDicts get category get 
  1849.             begin
  1850.                 currentdict /key load undef
  1851.             end
  1852.         } if
  1853.     } if
  1854.     currentdict dup /key undef /category undef
  1855.     end
  1856. }
  1857.  
  1858. /FindResource {
  1859.     count 2 lt {            % too few arguments
  1860.         /findencoding /stackunderflow err
  1861.     } if
  1862.     exch $resource exch
  1863.     /key exch dup type /arraytype eq {  % get the key.  If it's a proc,
  1864.         dup xcheck {                      % stuff the array into another array
  1865.             1 array astore cvx              % before defining key
  1866.         } if
  1867.     } if
  1868.     put
  1869.  
  1870.     $resource /key get type /nulltype eq {         % generate a complaint if null
  1871.         $resource /key get
  1872.         /findencoding /typecheck err
  1873.     } if
  1874.     $resource /KeyAccessTest get exec      % check the access of key if composite
  1875.     $resource begin
  1876.     /category exch def
  1877.  
  1878.     currentglobal {    % if global vm active
  1879.         currentdict /GlobalRDicts get category get /rdict exch def
  1880.     } {                % local vm, check local vm, then global
  1881.         currentdict /LocalRDicts get category get length 0 eq {
  1882.             currentdict /GlobalRDicts get category get length 0 eq {
  1883.                     % here we will later insert code to search for files containing
  1884.                     % the stuff
  1885.                 end $resource /key get /findencoding /undefinedresource err
  1886.             } if
  1887.             currentdict /GlobalRDicts get category get /rdict exch def
  1888.         } {
  1889.             currentdict /LocalRDicts get category get /rdict exch def
  1890.         } ifelse
  1891.     } ifelse
  1892.     rdict begin 
  1893.         currentdict $resource /key get known not { % didn't find in the first dict search
  1894.             end
  1895.             currentglobal {      % if global vm, all done
  1896.                 % here we will later insert code to search for files containing
  1897.                 % the stuff.  Be sure to update the ResourceStatusDict also !!
  1898.                 end $resource /key get /findencoding /undefinedresource err
  1899.             } if
  1900.             currentdict /GlobalRDicts get category get length 0 eq {
  1901.                 end $resource /key get /findencoding /undefinedresource err     % all done
  1902.             } if
  1903.                     % now search the global dictionary */
  1904.             currentdict /GlobalRDicts get category get /rdict exch def
  1905.             rdict $resource /key get known not {
  1906.                 end $resource dup /key get /findencoding /undefinedresource err
  1907.             } if
  1908.             currentdict /rdict get
  1909.             begin
  1910.         } if
  1911.             
  1912.     currentdict $resource /key get get
  1913.     end 
  1914.     currentdict /key undef
  1915.     currentdict /rdict undef
  1916.     currentdict /category undef
  1917.     end %$resource
  1918. }
  1919.  
  1920. /DefineResource { 
  1921.     count 3 lt {          % check for enough args
  1922.         /DefineResource /stackunderflow err
  1923.     } if 
  1924.     currentdict /InstanceType get
  1925.     $resource begin
  1926.  
  1927.     /insttype exch def
  1928.     /category exch def
  1929.     currentglobal {
  1930.         currentdict /GlobalRDicts get category get /rdict exch def
  1931.         currentdict /GlobalSDicts get category get /sdict exch def
  1932.         currentdict /LocalRDicts get category get /lrdict exch put
  1933.         currentdict /LocalSDicts get category get /lsdict exch put
  1934.     } {
  1935.         currentdict /LocalRDicts get category get /rdict exch def
  1936.         currentdict /LocalSDicts get category get /sdict exch def
  1937.     } ifelse
  1938.     /inst exch readonly def   % make the instance readonly
  1939.     inst type currentdict /insttype get ne {   % check for correct datatype
  1940.         end /DefineResource /typecheck err
  1941.     } if 
  1942.     /key exch def
  1943.     currentglobal {           % if true vm
  1944.         currentdict /inst get gcheck not { % can't store local instance into global
  1945.             end /DefineResource /invalidaccess err
  1946.         } if
  1947.         currentdict /lrdict get /nulltype ne {     % if local dict exists
  1948.             currentdict /lrdict get key undef        % delete any entry with
  1949.             currentdict /lsdict get key undef  % this key
  1950.         } if
  1951.     } if
  1952.     currentdict /rdict get key inst put          % store key, inst
  1953.     currentdict /sdict get key [0 -1 true] put   % set status
  1954.     inst                                         % put instance back on stack
  1955.     currentdict /inst undef currentdict /key undef  % ditch local variables
  1956.     currentdict /lrdict undef currentdict /lsdict undef
  1957.     currentdict /rdict undef currentdict /sdict undef
  1958.     end
  1959. }
  1960. >> /Category defineresource pop
  1961.  
  1962. % Implicit Resources
  1963. % FILTER
  1964. /Filter
  1965. <<
  1966. /InstanceType /nametype /Category /Filter
  1967. /err $resource /err get def
  1968.  
  1969. /ResourceForAll {
  1970.     genericresourceforall
  1971. }
  1972.  
  1973. /ResourceStatus {
  1974.     count 2 lt {
  1975.         /ResourceStatus /stackunderflow err
  1976.     } if
  1977.     $resource begin
  1978.  
  1979.     /category exch def
  1980.     /key exch def
  1981.     currentdict /GlobalSDicts get category get length 0 eq {
  1982.         false
  1983.     } {
  1984.         currentdict /GlobalSDicts get category get
  1985.         begin
  1986.             currentdict key known not {
  1987.                 false
  1988.             } {
  1989.                 currentdict key get {} forall
  1990.             } ifelse
  1991.         end
  1992.     } ifelse
  1993.     $resource dup /key undef /category undef
  1994.     end
  1995. }
  1996.  
  1997. /UndefineResource {
  1998.     $resource /initialize known not {
  1999.         /UndefineResource /invalidaccess err
  2000.     } if
  2001.     count 2 lt {
  2002.         /UndefineResource /stackunderflow err
  2003.     } if
  2004.     $resource begin
  2005.     /category exch def
  2006.     /key exch def
  2007.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  2008.         currentdict /GlobalRDicts get category get 
  2009.         begin
  2010.             currentdict /key load undef
  2011.         end
  2012.     } if
  2013.     currentdict dup /key undef /category undef
  2014.     end
  2015. }
  2016.  
  2017. /FindResource {
  2018.     count 1 lt {
  2019.         /FindResource /stackunderflow err
  2020.     } if
  2021.     $resource begin
  2022.  
  2023.     /category exch def
  2024.     /key exch def
  2025.     currentdict /GlobalRDicts get category get 
  2026.     begin 
  2027.         currentdict key known not {
  2028.             end end /FindResource /undefinedresource err
  2029.         } if
  2030.         currentdict key get
  2031.     end         % on the resource
  2032.     currentdict /key undef
  2033.     currentdict /category undef
  2034.     end            % on $resource
  2035. }
  2036.  
  2037. /DefineResource { 
  2038.     $resource /initialize known not {
  2039.         /DefineResource /invalidaccess err
  2040.     } if
  2041.     count 3 lt {          % check for enough args
  2042.         /DefineResource /stackunderflow err
  2043.     } if 
  2044.     currentdict /InstanceType get
  2045.     $resource begin
  2046.  
  2047.     /insttype exch def
  2048.     /category exch def
  2049.     currentglobal {
  2050.         currentdict /GlobalRDicts get category get /rdict exch def
  2051.         currentdict /GlobalSDicts get category get /sdict exch def
  2052.     } {
  2053.         end /DefineResource /invalidaccess err
  2054.     } ifelse
  2055.     /inst exch def   % make the instance readonly
  2056.     inst type currentdict /insttype get ne {   % check for correct datatype
  2057.         end /DefineResource /typecheck err
  2058.     } if 
  2059.     /key exch def
  2060.     currentglobal {           % if true vm
  2061.         currentdict /inst get gcheck not { % can't store local instance into global
  2062.             end /DefineResource /invalidaccess err
  2063.         } if
  2064.     } if
  2065.     currentdict /rdict get key inst put          % store key, inst
  2066.     currentdict /sdict get key [0 0 true] put   % set status
  2067.     inst                                         % put instance back on stack
  2068.     currentdict /inst undef currentdict /key undef  % ditch local variables
  2069.     currentdict /lrdict undef currentdict /lsdict undef
  2070.     currentdict /rdict undef currentdict /sdict undef
  2071.     end
  2072. }
  2073. >> /Category defineresource pop
  2074.  
  2075. % COLORSPACEFAMILY
  2076. /ColorSpaceFamily
  2077. <<
  2078. /InstanceType /nametype /Category /ColorSpaceFamily
  2079. /err $resource /err get def
  2080.  
  2081. /ResourceForAll {
  2082.     genericresourceforall
  2083. }
  2084.  
  2085. /ResourceStatus {
  2086.     count 2 lt {
  2087.         /ResourceStatus /stackunderflow err
  2088.     } if
  2089.     $resource begin
  2090.  
  2091.     /category exch def
  2092.     /key exch def
  2093.     currentdict /GlobalSDicts get category get length 0 eq {
  2094.         false
  2095.     } {
  2096.         currentdict /GlobalSDicts get category get
  2097.         begin
  2098.             currentdict key known not {
  2099.                 false
  2100.             } {
  2101.                 currentdict key get {} forall
  2102.             } ifelse
  2103.         end
  2104.     } ifelse
  2105.     $resource dup /key undef /category undef
  2106.     end
  2107. }
  2108.  
  2109. /UndefineResource {
  2110.     $resource /initialize known not {
  2111.         /UndefineResource /invalidaccess err
  2112.     } if
  2113.     count 2 lt {
  2114.         /UndefineResource /stackunderflow err
  2115.     } if
  2116.     $resource begin
  2117.     /category exch def
  2118.     /key exch def
  2119.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  2120.         currentdict /GlobalRDicts get category get 
  2121.         begin
  2122.             currentdict /key load undef
  2123.         end
  2124.     } if
  2125.     currentdict dup /key undef /category undef
  2126.     end
  2127. }
  2128.  
  2129. /FindResource {
  2130.     count 1 lt {
  2131.         /FindResource /stackunderflow err
  2132.     } if
  2133.     $resource begin
  2134.  
  2135.     /category exch def
  2136.     /key exch def
  2137.     currentdict /GlobalRDicts get category get 
  2138.     begin 
  2139.         currentdict key known not {
  2140.             end end /FindResource /undefinedresource err
  2141.         } if
  2142.         currentdict key get
  2143.     end         % on the resource
  2144.     currentdict /key undef
  2145.     currentdict /category undef
  2146.     end            % on $resource
  2147. }
  2148.  
  2149. /DefineResource { 
  2150.     $resource /initialize known not {
  2151.         /DefineResource /invalidaccess err
  2152.     } if
  2153.     count 3 lt {          % check for enough args
  2154.         /DefineResource /stackunderflow err
  2155.     } if 
  2156.     currentdict /InstanceType get
  2157.     $resource begin
  2158.  
  2159.     /insttype exch def
  2160.     /category exch def
  2161.     currentglobal {
  2162.         currentdict /GlobalRDicts get category get /rdict exch def
  2163.         currentdict /GlobalSDicts get category get /sdict exch def
  2164.     } {
  2165.         end /DefineResource /invalidaccess err
  2166.     } ifelse
  2167.     /inst exch def   % make the instance readonly
  2168.     inst type currentdict /insttype get ne {   % check for correct datatype
  2169.         end /DefineResource /typecheck err
  2170.     } if 
  2171.     /key exch def
  2172.     currentglobal {           % if true vm
  2173.         currentdict /inst get gcheck not { % can't store local instance into global
  2174.             end /DefineResource /invalidaccess err
  2175.         } if
  2176.     } if
  2177.     currentdict /rdict get key inst put          % store key, inst
  2178.     currentdict /sdict get key [0 0 true] put   % set status
  2179.     inst                                         % put instance back on stack
  2180.     currentdict /inst undef currentdict /key undef  % ditch local variables
  2181.     currentdict /lrdict undef currentdict /lsdict undef
  2182.     currentdict /rdict undef currentdict /sdict undef
  2183.     currentdict /category undef currentdict /insttype undef
  2184.     end
  2185. }
  2186. >> /Category defineresource pop
  2187.  
  2188. % EMULATOR
  2189. /Emulator
  2190. <<
  2191. /InstanceType /nametype /Category /Emulator
  2192. /err $resource /err get def
  2193.  
  2194. /ResourceForAll {
  2195.     genericresourceforall
  2196. }
  2197.  
  2198. /ResourceStatus {
  2199.     count 2 lt {
  2200.         /ResourceStatus /stackunderflow err
  2201.     } if
  2202.     $resource begin
  2203.  
  2204.     /category exch def
  2205.     /key exch def
  2206.     currentdict /GlobalSDicts get category get length 0 eq {
  2207.         false
  2208.     } {
  2209.         currentdict /GlobalSDicts get category get
  2210.         begin
  2211.             currentdict key known not {
  2212.                 false
  2213.             } {
  2214.                 currentdict key get {} forall
  2215.             } ifelse
  2216.         end
  2217.     } ifelse
  2218.     $resource dup /key undef /category undef
  2219.     end
  2220. }
  2221.  
  2222. /UndefineResource {
  2223.     $resource /initialize known not {
  2224.         /UndefineResource /invalidaccess err
  2225.     } if
  2226.     count 2 lt {
  2227.         /UndefineResource /stackunderflow err
  2228.     } if
  2229.     $resource begin
  2230.     /category exch def
  2231.     /key exch def
  2232.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  2233.         currentdict /GlobalRDicts get category get 
  2234.         begin
  2235.             currentdict /key load undef
  2236.         end
  2237.     } if
  2238.     currentdict dup /key undef /category undef
  2239.     end
  2240. }
  2241.  
  2242. /FindResource {
  2243.     count 1 lt {
  2244.         /FindResource /stackunderflow err
  2245.     } if
  2246.     $resource begin
  2247.  
  2248.     /category exch def
  2249.     /key exch def
  2250.     currentdict /GlobalRDicts get category get 
  2251.     begin 
  2252.         currentdict key known not {
  2253.             end end /FindResource /undefinedresource err
  2254.         } if
  2255.         currentdict key get
  2256.     end         % on the resource
  2257.     currentdict /key undef
  2258.     currentdict /category undef
  2259.     end            % on $resource
  2260. }
  2261.  
  2262. /DefineResource { 
  2263.     $resource /initialize known not {
  2264.         /DefineResource /invalidaccess err
  2265.     } if
  2266.     count 3 lt {          % check for enough args
  2267.         /DefineResource /stackunderflow err
  2268.     } if 
  2269.     currentdict /InstanceType get
  2270.     $resource begin
  2271.  
  2272.     /insttype exch def
  2273.     /category exch def
  2274.     currentglobal {
  2275.         currentdict /GlobalRDicts get category get /rdict exch def
  2276.         currentdict /GlobalSDicts get category get /sdict exch def
  2277.     } {
  2278.         end /DefineResource /invalidaccess err
  2279.     } ifelse
  2280.     /inst exch def   % make the instance readonly
  2281.     inst type currentdict /insttype get ne {   % check for correct datatype
  2282.         end /DefineResource /typecheck err
  2283.     } if 
  2284.     /key exch def
  2285.     currentglobal {           % if true vm
  2286.         currentdict /inst get gcheck not { % can't store local instance into global
  2287.             end /DefineResource /invalidaccess err
  2288.         } if
  2289.     } if
  2290.     currentdict /rdict get key inst put          % store key, inst
  2291.     currentdict /sdict get key [0 0 true] put   % set status
  2292.     inst                                         % put instance back on stack
  2293.     currentdict /inst undef currentdict /key undef  % ditch local variables
  2294.     currentdict /lrdict undef currentdict /lsdict undef
  2295.     currentdict /rdict undef currentdict /sdict undef
  2296.     currentdict /category undef currentdict /insttype undef
  2297.     end
  2298. }
  2299. >> /Category defineresource pop
  2300.  
  2301. % IODEVICE
  2302. /IODevice
  2303. <<
  2304. /InstanceType /stringtype /Category /IODevice
  2305. /err $resource /err get def
  2306.  
  2307. /ResourceForAll {
  2308.     genericresourceforall
  2309. }
  2310.  
  2311. /ResourceStatus {
  2312.     count 2 lt {
  2313.         /ResourceStatus /stackunderflow err
  2314.     } if
  2315.     $resource begin
  2316.  
  2317.     /category exch def
  2318.     /key exch def
  2319.     currentdict /GlobalSDicts get category get length 0 eq {
  2320.         false
  2321.     } {
  2322.         currentdict /GlobalSDicts get category get
  2323.         begin
  2324.             currentdict key known not {
  2325.                 false
  2326.             } {
  2327.                 currentdict key get {} forall
  2328.             } ifelse
  2329.         end
  2330.     } ifelse
  2331.     $resource dup /key undef /category undef
  2332.     end
  2333. }
  2334.  
  2335. /UndefineResource {
  2336.     $resource /initialize known not {
  2337.         /UndefineResource /invalidaccess err
  2338.     } if
  2339.     count 2 lt {
  2340.         /UndefineResource /stackunderflow err
  2341.     } if
  2342.     $resource begin
  2343.     /category exch def
  2344.     /key exch def
  2345.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  2346.         currentdict /GlobalRDicts get category get 
  2347.         begin
  2348.             currentdict /key load undef
  2349.         end
  2350.     } if
  2351.     currentdict dup /key undef /category undef
  2352.     end
  2353. }
  2354.  
  2355. /FindResource {
  2356.     count 1 lt {
  2357.         /FindResource /stackunderflow err
  2358.     } if
  2359.     $resource begin
  2360.  
  2361.     /category exch def
  2362.     /key exch def
  2363.     currentdict /GlobalRDicts get category get 
  2364.     begin 
  2365.         currentdict key known not {
  2366.             end end /FindResource /undefinedresource err
  2367.         } if
  2368.         currentdict key get
  2369.     end         % on the resource
  2370.     currentdict /key undef
  2371.     currentdict /category undef
  2372.     end            % on $resource
  2373. }
  2374.  
  2375. /DefineResource { 
  2376.     $resource /initialize known not {
  2377.         /DefineResource /invalidaccess err
  2378.     } if
  2379.     count 3 lt {          % check for enough args
  2380.         /DefineResource /stackunderflow err
  2381.     } if 
  2382.     currentdict /InstanceType get
  2383.     $resource begin
  2384.  
  2385.     /insttype exch def
  2386.     /category exch def
  2387.     currentglobal {
  2388.         currentdict /GlobalRDicts get category get /rdict exch def
  2389.         currentdict /GlobalSDicts get category get /sdict exch def
  2390.     } {
  2391.         end /DefineResource /invalidaccess err
  2392.     } ifelse
  2393.     /inst exch def   % make the instance readonly
  2394.     inst type currentdict /insttype get ne {   % check for correct datatype
  2395.         end /DefineResource /typecheck err
  2396.     } if 
  2397.     /key exch def
  2398.     currentglobal {           % if true vm
  2399.         currentdict /inst get gcheck not { % can't store local instance into global
  2400.             end /DefineResource /invalidaccess err
  2401.         } if
  2402.     } if
  2403.     currentdict /rdict get key inst put          % store key, inst
  2404.     currentdict /sdict get key [0 0 true] put   % set status
  2405.     inst                                         % put instance back on stack
  2406.     currentdict /inst undef currentdict /key undef  % ditch local variables
  2407.     currentdict /lrdict undef currentdict /lsdict undef
  2408.     currentdict /rdict undef currentdict /sdict undef
  2409.     end
  2410. }
  2411. >> /Category defineresource pop
  2412.  
  2413. % COLORRENDERINGTYPE
  2414. /ColorRenderingType
  2415. <<
  2416. /InstanceType /integertype /Category /ColorRenderingType
  2417. /err $resource /err get def
  2418.  
  2419. /ResourceForAll {
  2420.     implicitresourceforall
  2421. }
  2422.  
  2423.  
  2424. /ResourceStatus {
  2425.     count 2 lt {
  2426.         /ResourceStatus /stackunderflow err
  2427.     } if
  2428.     $resource begin
  2429.  
  2430.     /category exch def
  2431.     /key exch def
  2432.     currentdict /GlobalSDicts get category get length 0 eq {
  2433.         false
  2434.     } {
  2435.         currentdict /GlobalSDicts get category get
  2436.         begin
  2437.             currentdict key known not {
  2438.                 false
  2439.             } {
  2440.                 currentdict key get {} forall
  2441.             } ifelse
  2442.         end
  2443.     } ifelse
  2444.     $resource dup /key undef /category undef
  2445.     end
  2446. }
  2447.  
  2448. /UndefineResource {
  2449.     $resource /initialize known not {
  2450.         /UndefineResource /invalidaccess err
  2451.     } if
  2452.     count 2 lt {
  2453.         /UndefineResource /stackunderflow err
  2454.     } if
  2455.     $resource begin
  2456.     /category exch def
  2457.     /key exch def
  2458.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  2459.         currentdict /GlobalRDicts get category get 
  2460.         begin
  2461.             currentdict /key load undef
  2462.         end
  2463.     } if
  2464.     currentdict dup /key undef /category undef
  2465.     end
  2466. }
  2467.  
  2468. /FindResource {
  2469.     count 1 lt {
  2470.         /FindResource /stackunderflow err
  2471.     } if
  2472.     $resource begin
  2473.  
  2474.     /category exch def
  2475.     /key exch def
  2476.     currentdict /GlobalRDicts get category get 
  2477.     begin 
  2478.         currentdict key known not {
  2479.             end end /FindResource /undefinedresource err
  2480.         } if
  2481.         currentdict key get
  2482.     end         % on the resource
  2483.     currentdict /key undef
  2484.     currentdict /category undef
  2485.     end            % on $resource
  2486. }
  2487.  
  2488. /DefineResource { 
  2489.     $resource /initialize known not {
  2490.         /DefineResource /invalidaccess err
  2491.     } if
  2492.     count 3 lt {          % check for enough args
  2493.         /DefineResource /stackunderflow err
  2494.     } if 
  2495.     currentdict /InstanceType get
  2496.     $resource begin
  2497.  
  2498.     /insttype exch def
  2499.     /category exch def
  2500.     currentglobal {
  2501.         currentdict /GlobalRDicts get category get /rdict exch def
  2502.         currentdict /GlobalSDicts get category get /sdict exch def
  2503.     } {
  2504.         end /DefineResource /invalidaccess err
  2505.     } ifelse
  2506.     /inst exch def   % make the instance readonly
  2507.     inst type currentdict /insttype get ne {   % check for correct datatype
  2508.         end /DefineResource /typecheck err
  2509.     } if 
  2510.     /key exch def
  2511.     currentglobal {           % if true vm
  2512.         currentdict /inst get gcheck not {  % can't store local instance into global
  2513.             end /DefineResource /invalidaccess err
  2514.         } if
  2515.     } if
  2516.     currentdict /rdict get key inst put          % store key, inst
  2517.     currentdict /sdict get key [0 0 true] put   % set status
  2518.     inst                                         % put instance back on stack
  2519.     currentdict /inst undef currentdict /key undef  % ditch local variables
  2520.     currentdict /lrdict undef currentdict /lsdict undef
  2521.     currentdict /rdict undef currentdict /sdict undef
  2522.     currentdict /category undef currentdict /insttype undef
  2523.     end
  2524. }
  2525. >> /Category defineresource pop
  2526.  
  2527. % FMAPTYPE
  2528. /FMapType
  2529. <<
  2530. /InstanceType /integertype /Category /FMapType
  2531. /err $resource /err get def
  2532.  
  2533. /ResourceForAll {
  2534.     implicitresourceforall
  2535. }
  2536.  
  2537. /ResourceStatus {
  2538.     count 2 lt {
  2539.         /ResourceStatus /stackunderflow err
  2540.     } if
  2541.     currentdict /InstanceType get
  2542.     $resource begin
  2543.  
  2544.     /insttype exch def
  2545.     /category exch def
  2546.     /key exch def
  2547.     $resource /key get type $resource /insttype get ne {
  2548.         end /ResourceStatus /typecheck err
  2549.     } if
  2550.     currentdict /GlobalSDicts get category get length 0 eq {
  2551.         false
  2552.     } {
  2553.         currentdict /GlobalSDicts get category get
  2554.         begin
  2555.             currentdict key known not {
  2556.                 false
  2557.             } {
  2558.                 currentdict key get {} forall
  2559.             } ifelse
  2560.         end
  2561.     } ifelse
  2562.     $resource dup /key undef /category undef
  2563.     $resource /insttype undef
  2564.     end
  2565. }
  2566.  
  2567. /UndefineResource {
  2568.     $resource /initialize known not {
  2569.         /UndefineResource /invalidaccess err
  2570.     } if
  2571.     count 2 lt {
  2572.         /UndefineResource /stackunderflow err
  2573.     } if
  2574.     currentdict /InstanceType get
  2575.  
  2576.     $resource begin
  2577.     /insttype exch def
  2578.     /category exch def
  2579.     /key exch def
  2580.     $resource /key get type $resource /insttype get ne {
  2581.         end /UndefineResource /typecheck err
  2582.     } if
  2583.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  2584.         currentdict /GlobalRDicts get category get 
  2585.         begin
  2586.             currentdict /key load undef
  2587.         end
  2588.     } if
  2589.     currentdict dup /key undef /category undef
  2590.     end
  2591. }
  2592.  
  2593. /FindResource {
  2594.     count 1 lt {
  2595.         /FindResource /stackunderflow err
  2596.     } if
  2597.     $resource begin
  2598.  
  2599.     /category exch def
  2600.     /key exch def
  2601.     currentdict /GlobalRDicts get category get 
  2602.     begin 
  2603.         currentdict key known not {
  2604.             end end /FindResource /undefinedresource err
  2605.         } if
  2606.         currentdict key get
  2607.     end         % on the resource
  2608.     currentdict /key undef
  2609.     currentdict /category undef
  2610.     end            % on $resource
  2611. }
  2612.  
  2613. /DefineResource { 
  2614.     $resource /initialize known not {
  2615.         /DefineResource /invalidaccess err
  2616.     } if
  2617.     count 3 lt {          % check for enough args
  2618.         /DefineResource /stackunderflow err
  2619.     } if 
  2620.     currentdict /InstanceType get
  2621.     $resource begin
  2622.  
  2623.     /insttype exch def
  2624.     /category exch def
  2625.     currentglobal {
  2626.         currentdict /GlobalRDicts get category get /rdict exch def
  2627.         currentdict /GlobalSDicts get category get /sdict exch def
  2628.     } {
  2629.         end /DefineResource /invalidaccess err
  2630.     } ifelse
  2631.     /inst exch def   % make the instance readonly
  2632.     inst type currentdict /insttype get ne {   % check for correct datatype
  2633.         end /DefineResource /typecheck err
  2634.     } if 
  2635.     /key exch def
  2636.     currentglobal {           % if true vm
  2637.         currentdict /inst get gcheck not { % can't store local instance into global
  2638.             end /DefineResource /invalidaccess err
  2639.         } if
  2640.     } if
  2641.     currentdict /rdict get key inst put          % store key, inst
  2642.     currentdict /sdict get key [0 0 true] put   % set status
  2643.     inst                                         % put instance back on stack
  2644.     currentdict /inst undef currentdict /key undef  % ditch local variables
  2645.     currentdict /lrdict undef currentdict /lsdict undef
  2646.     currentdict /rdict undef currentdict /sdict undef
  2647.     currentdict /category undef currentdict /insttype undef
  2648.     end
  2649. }
  2650. >> /Category defineresource pop
  2651.  
  2652. % FONTTYPE
  2653. /FontType
  2654. <<
  2655. /InstanceType /integertype /Category /FontType
  2656. /err $resource /err get def
  2657.  
  2658. /ResourceForAll {
  2659.     implicitresourceforall
  2660. }
  2661.  
  2662. /ResourceStatus {
  2663.     count 2 lt {
  2664.         /ResourceStatus /stackunderflow err
  2665.     } if
  2666.     $resource begin
  2667.  
  2668.     /category exch def
  2669.     /key exch def
  2670.     currentdict /GlobalSDicts get category get length 0 eq {
  2671.         false
  2672.     } {
  2673.         currentdict /GlobalSDicts get category get
  2674.         begin
  2675.             currentdict key known not {
  2676.                 false
  2677.             } {
  2678.                 currentdict key get {} forall
  2679.             } ifelse
  2680.         end
  2681.     } ifelse
  2682.     $resource dup /key undef /category undef
  2683.     end
  2684. }
  2685.  
  2686. /UndefineResource {
  2687.     $resource /initialize known not {
  2688.         /UndefineResource /invalidaccess err
  2689.     } if
  2690.     count 2 lt {
  2691.         /UndefineResource /stackunderflow err
  2692.     } if
  2693.     $resource begin
  2694.     /category exch def
  2695.     /key exch def
  2696.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  2697.         currentdict /GlobalRDicts get category get 
  2698.         begin
  2699.             currentdict /key load undef
  2700.         end
  2701.     } if
  2702.     currentdict dup /key undef /category undef
  2703.     end
  2704. }
  2705.  
  2706. /FindResource {
  2707.     count 1 lt {
  2708.         /FindResource /stackunderflow err
  2709.     } if
  2710.     $resource begin
  2711.  
  2712.     /category exch def
  2713.     /key exch def
  2714.     currentdict /GlobalRDicts get category get 
  2715.     begin 
  2716.         currentdict key known not {
  2717.             end end /FindResource /undefinedresource err
  2718.         } if
  2719.         currentdict key get
  2720.     end         % on the resource
  2721.     currentdict /key undef
  2722.     currentdict /category undef
  2723.     end            % on $resource
  2724. }
  2725.  
  2726. /DefineResource { 
  2727.     $resource /initialize known not {
  2728.         /DefineResource /invalidaccess err
  2729.     } if
  2730.     count 3 lt {          % check for enough args
  2731.         /DefineResource /stackunderflow err
  2732.     } if 
  2733.     currentdict /InstanceType get
  2734.     $resource begin
  2735.  
  2736.     /insttype exch def
  2737.     /category exch def
  2738.     currentglobal {
  2739.         currentdict /GlobalRDicts get category get /rdict exch def
  2740.         currentdict /GlobalSDicts get category get /sdict exch def
  2741.     } {
  2742.         end /DefineResource /invalidaccess err
  2743.     } ifelse
  2744.     /inst exch def   % make the instance readonly
  2745.     inst type currentdict /insttype get ne {   % check for correct datatype
  2746.         end /DefineResource /typecheck err
  2747.     } if 
  2748.     /key exch def
  2749.     currentglobal {           % if true vm
  2750.         currentdict /inst get gcheck not { % can't store local instance into global
  2751.             end /DefineResource /invalidaccess err
  2752.         } if
  2753.     } if
  2754.     currentdict /rdict get key inst put          % store key, inst
  2755.     currentdict /sdict get key [0 0 true] put   % set status
  2756.     inst                                         % put instance back on stack
  2757.     currentdict /inst undef currentdict /key undef  % ditch local variables
  2758.     currentdict /lrdict undef currentdict /lsdict undef
  2759.     currentdict /rdict undef currentdict /sdict undef
  2760.     currentdict /category undef currentdict /insttype undef
  2761.     end
  2762. }
  2763. >> /Category defineresource pop
  2764.  
  2765. % FORMTYPE
  2766. /FormType
  2767. <<
  2768. /InstanceType /integertype /Category /FormType
  2769. /err $resource /err get def
  2770.  
  2771. /ResourceForAll {
  2772.     implicitresourceforall
  2773. }
  2774.  
  2775. /ResourceStatus {
  2776.     count 2 lt {
  2777.         /ResourceStatus /stackunderflow err
  2778.     } if
  2779.     $resource begin
  2780.  
  2781.     /category exch def
  2782.     /key exch def
  2783.     currentdict /GlobalSDicts get category get length 0 eq {
  2784.         false
  2785.     } {
  2786.         currentdict /GlobalSDicts get category get
  2787.         begin
  2788.             currentdict key known not {
  2789.                 false
  2790.             } {
  2791.                 currentdict key get {} forall
  2792.             } ifelse
  2793.         end
  2794.     } ifelse
  2795.     $resource dup /key undef /category undef
  2796.     end
  2797. }
  2798.  
  2799. /UndefineResource {
  2800.     $resource /initialize known not {
  2801.         /UndefineResource /invalidaccess err
  2802.     } if
  2803.     count 2 lt {
  2804.         /UndefineResource /stackunderflow err
  2805.     } if
  2806.     $resource begin
  2807.     /category exch def
  2808.     /key exch def
  2809.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  2810.         currentdict /GlobalRDicts get category get 
  2811.         begin
  2812.             currentdict /key load undef
  2813.         end
  2814.     } if
  2815.     currentdict dup /key undef /category undef
  2816.     end
  2817. }
  2818.  
  2819. /FindResource {
  2820.     count 1 lt {
  2821.         /FindResource /stackunderflow err
  2822.     } if
  2823.     $resource begin
  2824.  
  2825.     /category exch def
  2826.     /key exch def
  2827.     currentdict /GlobalRDicts get category get 
  2828.     begin 
  2829.         currentdict key known not {
  2830.             end end /FindResource /undefinedresource err
  2831.         } if
  2832.         currentdict key get
  2833.     end         % on the resource
  2834.     currentdict /key undef
  2835.     currentdict /category undef
  2836.     end            % on $resource
  2837. }
  2838.  
  2839. /DefineResource { 
  2840.     $resource /initialize known not {
  2841.         /DefineResource /invalidaccess err
  2842.     } if
  2843.     count 3 lt {          % check for enough args
  2844.         /DefineResource /stackunderflow err
  2845.     } if 
  2846.     currentdict /InstanceType get
  2847.     $resource begin
  2848.  
  2849.     /insttype exch def
  2850.     /category exch def
  2851.     currentglobal {
  2852.         currentdict /GlobalRDicts get category get /rdict exch def
  2853.         currentdict /GlobalSDicts get category get /sdict exch def
  2854.     } {
  2855.         end /DefineResource /invalidaccess err
  2856.     } ifelse
  2857.     /inst exch def   % make the instance readonly
  2858.     inst type currentdict /insttype get ne {   % check for correct datatype
  2859.         end /DefineResource /typecheck err
  2860.     } if 
  2861.     /key exch def
  2862.     currentglobal {           % if true vm
  2863.         currentdict /inst get gcheck not { % can't store local instance into global
  2864.             end /DefineResource /invalidaccess err
  2865.         } if
  2866.     } if
  2867.     currentdict /rdict get key inst put          % store key, inst
  2868.     currentdict /sdict get key [0 0 true] put   % set status
  2869.     inst                                         % put instance back on stack
  2870.     currentdict /inst undef currentdict /key undef  % ditch local variables
  2871.     currentdict /lrdict undef currentdict /lsdict undef
  2872.     currentdict /rdict undef currentdict /sdict undef
  2873.     currentdict /category undef currentdict /insttype undef
  2874.     end
  2875. }
  2876. >> /Category defineresource pop
  2877.  
  2878. % HALFTONETYPE
  2879. /HalftoneType
  2880. <<
  2881. /InstanceType /integertype /Category /HalftoneType
  2882. /err $resource /err get def
  2883.  
  2884. /ResourceForAll {
  2885.     implicitresourceforall
  2886. }
  2887.  
  2888. /ResourceStatus {
  2889.     count 2 lt {
  2890.         /ResourceStatus /stackunderflow err
  2891.     } if
  2892.     $resource begin
  2893.  
  2894.     /category exch def
  2895.     /key exch def
  2896.     currentdict /GlobalSDicts get category get length 0 eq {
  2897.         false
  2898.     } {
  2899.         currentdict /GlobalSDicts get category get
  2900.         begin
  2901.             currentdict key known not {
  2902.                 false
  2903.             } {
  2904.                 currentdict key get {} forall
  2905.             } ifelse
  2906.         end
  2907.     } ifelse
  2908.     $resource dup /key undef /category undef
  2909.     end
  2910. }
  2911.  
  2912. /UndefineResource {
  2913.     $resource /initialize known not {
  2914.         /UndefineResource /invalidaccess err
  2915.     } if
  2916.     count 2 lt {
  2917.         /UndefineResource /stackunderflow err
  2918.     } if
  2919.     $resource begin
  2920.     /category exch def
  2921.     /key exch def
  2922.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  2923.         currentdict /GlobalRDicts get category get 
  2924.         begin
  2925.             currentdict /key load undef
  2926.         end
  2927.     } if
  2928.     currentdict dup /key undef /category undef
  2929.     end
  2930. }
  2931.  
  2932. /FindResource {
  2933.     count 1 lt {
  2934.         /FindResource /stackunderflow err
  2935.     } if
  2936.     $resource begin
  2937.  
  2938.     /category exch def
  2939.     /key exch def
  2940.     currentdict /GlobalRDicts get category get 
  2941.     begin 
  2942.         currentdict key known not {
  2943.             end end /FindResource /undefinedresource err
  2944.         } if
  2945.         currentdict key get
  2946.     end         % on the resource
  2947.     currentdict /key undef
  2948.     currentdict /category undef
  2949.     end            % on $resource
  2950. }
  2951.  
  2952. /DefineResource { 
  2953.     $resource /initialize known not {
  2954.         /DefineResource /invalidaccess err
  2955.     } if
  2956.     count 3 lt {          % check for enough args
  2957.         /DefineResource /stackunderflow err
  2958.     } if 
  2959.     currentdict /InstanceType get
  2960.     $resource begin
  2961.  
  2962.     /insttype exch def
  2963.     /category exch def
  2964.     currentglobal {
  2965.         currentdict /GlobalRDicts get category get /rdict exch def
  2966.         currentdict /GlobalSDicts get category get /sdict exch def
  2967.     } {
  2968.         end /DefineResource /invalidaccess err
  2969.     } ifelse
  2970.     /inst exch def   % make the instance readonly
  2971.     inst type currentdict /insttype get ne {   % check for correct datatype
  2972.         end /DefineResource /typecheck err
  2973.     } if 
  2974.     /key exch def
  2975.     currentglobal {           % if true vm
  2976.         currentdict /inst get gcheck not { % can't store local instance into global
  2977.             end /DefineResource /invalidaccess err
  2978.         } if
  2979.     } if
  2980.     currentdict /rdict get key inst put          % store key, inst
  2981.     currentdict /sdict get key [0 0 true] put   % set status
  2982.     inst                                         % put instance back on stack
  2983.     currentdict /inst undef currentdict /key undef  % ditch local variables
  2984.     currentdict /lrdict undef currentdict /lsdict undef
  2985.     currentdict /rdict undef currentdict /sdict undef
  2986.     currentdict /category undef currentdict /insttype undef
  2987.     end
  2988. }
  2989. >> /Category defineresource pop
  2990.  
  2991. % IMAGETYPE
  2992. /ImageType
  2993. <<
  2994. /InstanceType /integertype /Category /ImageType
  2995. /err $resource /err get def
  2996.  
  2997. /ResourceForAll {
  2998.     implicitresourceforall
  2999. }
  3000.  
  3001. /ResourceStatus {
  3002.     count 2 lt {
  3003.         /ResourceStatus /stackunderflow err
  3004.     } if
  3005.     $resource begin
  3006.  
  3007.     /category exch def
  3008.     /key exch def
  3009.     currentdict /GlobalSDicts get category get length 0 eq {
  3010.         false
  3011.     } {
  3012.         currentdict /GlobalSDicts get category get
  3013.         begin
  3014.             currentdict key known not {
  3015.                 false
  3016.             } {
  3017.                 currentdict key get {} forall
  3018.             } ifelse
  3019.         end
  3020.     } ifelse
  3021.     $resource dup /key undef /category undef
  3022.     end
  3023. }
  3024.  
  3025. /UndefineResource {
  3026.     $resource /initialize known not {
  3027.         /UndefineResource /invalidaccess err
  3028.     } if
  3029.     count 2 lt {
  3030.         /UndefineResource /stackunderflow err
  3031.     } if
  3032.     $resource begin
  3033.     /category exch def
  3034.     /key exch def
  3035.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  3036.         currentdict /GlobalRDicts get category get 
  3037.         begin
  3038.             currentdict /key load undef
  3039.         end
  3040.     } if
  3041.     currentdict dup /key undef /category undef
  3042.     end
  3043. }
  3044.  
  3045. /FindResource {
  3046.     count 1 lt {
  3047.         /FindResource /stackunderflow err
  3048.     } if
  3049.     $resource begin
  3050.  
  3051.     /category exch def
  3052.     /key exch def
  3053.     currentdict /GlobalRDicts get category get 
  3054.     begin 
  3055.         currentdict key known not {
  3056.             end end /FindResource /undefinedresource err
  3057.         } if
  3058.         currentdict key get
  3059.     end         % on the resource
  3060.     currentdict /key undef
  3061.     currentdict /category undef
  3062.     end            % on $resource
  3063. }
  3064.  
  3065. /DefineResource { 
  3066.     $resource /initialize known not {
  3067.         /DefineResource /invalidaccess err
  3068.     } if
  3069.     count 3 lt {          % check for enough args
  3070.         /DefineResource /stackunderflow err
  3071.     } if 
  3072.     currentdict /InstanceType get
  3073.     $resource begin
  3074.  
  3075.     /insttype exch def
  3076.     /category exch def
  3077.     currentglobal {
  3078.         currentdict /GlobalRDicts get category get /rdict exch def
  3079.         currentdict /GlobalSDicts get category get /sdict exch def
  3080.     } {
  3081.         end /DefineResource /invalidaccess err
  3082.     } ifelse
  3083.     /inst exch def   % make the instance readonly
  3084.     inst type currentdict /insttype get ne {   % check for correct datatype
  3085.         end /DefineResource /typecheck err
  3086.     } if 
  3087.     /key exch def
  3088.     currentglobal {           % if true vm
  3089.         currentdict /inst get gcheck not { % can't store local instance into global
  3090.             end /DefineResource /invalidaccess err
  3091.         } if
  3092.     } if
  3093.     currentdict /rdict get key inst put          % store key, inst
  3094.     currentdict /sdict get key [0 0 true] put   % set status
  3095.     inst                                         % put instance back on stack
  3096.     currentdict /inst undef currentdict /key undef  % ditch local variables
  3097.     currentdict /lrdict undef currentdict /lsdict undef
  3098.     currentdict /rdict undef currentdict /sdict undef
  3099.     currentdict /category undef currentdict /insttype undef
  3100.     end
  3101. }
  3102. >> /Category defineresource pop
  3103.  
  3104.  
  3105. true setglobal
  3106. % GENERIC
  3107. /Generic 
  3108. <<
  3109. /Category /Generic 
  3110. /err $resource /err get def
  3111.  
  3112. /ResourceForAll {
  3113.     genericresourceforall
  3114. }
  3115.  
  3116. /ResourceStatus {
  3117.     count 2 lt {
  3118.         /ResourceStatus /stackunderflow err
  3119.     } if
  3120.     $resource begin
  3121.  
  3122.     /category exch def
  3123.     /key exch def
  3124.     currentglobal {
  3125.         currentdict /GlobalSDicts get category get /sdict exch def
  3126.         sdict length 0 eq {
  3127.             false
  3128.         } {
  3129.             sdict begin
  3130.                 currentdict /key load known not {
  3131.                     false
  3132.                 } {
  3133.                     currentdict /key load get {} forall
  3134.                 } ifelse
  3135.             end
  3136.         } ifelse
  3137.     } {
  3138.         currentdict /LocalSDicts get category get /sdict exch def
  3139.         sdict length 0 eq {
  3140.             currentdict /GlobalSDicts get category known not {
  3141.                 false
  3142.             } {
  3143.                 currentdict /GlobalSDicts get category get length 0 eq {
  3144.                     false
  3145.                 } {
  3146.                     currentdict /GlobalSDicts get category get begin
  3147.                         currentdict /key load known not {
  3148.                             false
  3149.                         } {
  3150.                             currentdict /key load get {} forall
  3151.                         } ifelse
  3152.                     end
  3153.                 } ifelse
  3154.             } ifelse
  3155.         } {
  3156.             currentdict /LocalSDicts get category get length 0 eq {
  3157.                 false
  3158.             } {
  3159.                 currentdict /LocalSDicts get category get begin
  3160.                     currentdict /key load known not {
  3161.                         false
  3162.                     } {
  3163.                         currentdict /key load get {} forall
  3164.                     } ifelse
  3165.                 end
  3166.             } ifelse
  3167.         } ifelse
  3168.     } ifelse
  3169.     $resource /key undef $resource /sdict undef
  3170.     $resource /category undef
  3171.     end
  3172. }
  3173.  
  3174. /ResourceFileName {
  3175.     (Resource/Generic/) genericresourcefile
  3176. }
  3177.  
  3178. /UndefineResource {
  3179.     count 2 lt {
  3180.         /UndefineResource /stackunderflow err
  3181.     } if
  3182.     $resource begin
  3183.     /category exch def
  3184.     /key exch def
  3185.             % always delete from local vm dictionary
  3186.     currentdict /LocalRDicts get category get length 0 ne {
  3187.         currentdict /LocalRDicts get category get 
  3188.         begin
  3189.             currentdict /key load undef
  3190.         end
  3191.         currentdict /LocalSDicts get category get 
  3192.         begin
  3193.             currentdict /key load undef
  3194.         end
  3195.     } if
  3196.     currentglobal {                                 % if global vm, delete
  3197.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  3198.             currentdict /GlobalRDicts get category get 
  3199.             begin
  3200.                 currentdict /key load undef
  3201.             end
  3202.             currentdict /GlobalSDicts get category get 
  3203.             begin
  3204.                 currentdict /key load undef
  3205.             end
  3206.         } if
  3207.     } if
  3208.     currentdict dup /key undef /category undef
  3209.     end
  3210. }
  3211.  
  3212. /KeyAccessTest {
  3213.     /matched false def
  3214.     [/arraytype /stringtype /packedarraytype /dicttype /filetype]
  3215.     {key type eq matched or /matched exch def } forall
  3216.     matched {
  3217.         key rcheck not {
  3218.             currentdict /matched undef
  3219.             key currentdict /key undef
  3220.             /findencoding /invalidaccess err
  3221.         } if
  3222.     } if
  3223.     currentdict /matched undef
  3224. } def
  3225.  
  3226. /FindResource {
  3227.     count 2 lt {            % too few arguments
  3228.         /findencoding /stackunderflow err
  3229.     } if
  3230.     exch $resource exch
  3231.     /key exch dup type /arraytype eq {  % get the key.  If it's a proc,
  3232.         dup xcheck {                      % stuff the array into another array
  3233.             1 array astore cvx              % before defining key
  3234.         } if
  3235.     } if
  3236.     put
  3237.  
  3238.     $resource /key get type /nulltype eq {         % generate a complaint if null
  3239.         $resource /key get
  3240.         /findencoding /typecheck err
  3241.     } if
  3242.     $resource /KeyAccessTest get exec % check the access of key if composite
  3243.     $resource begin
  3244.     /category exch def
  3245.  
  3246.     currentglobal {    % if global vm active
  3247.         currentdict /GlobalRDicts get category get /rdict exch def
  3248.     } {                % local vm, check local vm, then global
  3249.         currentdict /LocalRDicts get category get length 0 eq {
  3250.             currentdict /GlobalRDicts get category get length 0 eq {
  3251.                     % here we will later insert code to search for files containing
  3252.                     % the stuff
  3253.                 end $resource /key get /findencoding /undefinedresource err
  3254.             } if
  3255.             currentdict /GlobalRDicts get category get /rdict exch def
  3256.         } {
  3257.             currentdict /LocalRDicts get category get /rdict exch def
  3258.         } ifelse
  3259.     } ifelse
  3260.     rdict begin 
  3261.         currentdict /key load known not { % didn't find in the first dict search
  3262.             end                    %end of rdict
  3263.             currentglobal {      % if global vm, all done
  3264.                 % here we will later insert code to search for files containing
  3265.                 % the stuff.  Be sure to update the ResourceStatusDict also !!
  3266.                 end $resource /key get /findencoding /undefinedresource err
  3267.             } if
  3268.             currentdict /GlobalRDicts get category get length 0 eq {
  3269.                 end /key load /findencoding /undefinedresource err     % all done
  3270.             } if
  3271.                     % now search the global dictionary */
  3272.             currentdict /GlobalRDicts get category get /rdict exch def
  3273.             rdict /key load known not {
  3274.                 end $resource /key get /findencoding /undefinedresource err
  3275.             } if
  3276.             currentdict /rdict get
  3277.             begin
  3278.         } if
  3279.             
  3280.     currentdict /key load get
  3281.     end 
  3282.     currentdict /key undef
  3283.     currentdict /rdict undef
  3284.     currentdict /category undef
  3285.     end %$resource
  3286. }
  3287.  
  3288. /DefineResource { 
  3289.     count 3 lt {          % check for enough args
  3290.         /DefineResource /stackunderflow err
  3291.     } if 
  3292.     currentdict /InstanceType known not {
  3293.         $resource /instflag false put
  3294.     } {
  3295.         currentdict /InstanceType get
  3296.         $resource /instflag true put
  3297.     } ifelse
  3298.     $resource begin
  3299.  
  3300.     instflag {
  3301.         /insttype exch def
  3302.     } if
  3303.     /category exch def
  3304.     currentglobal {
  3305.         currentdict /GlobalRDicts get category get /rdict exch def
  3306.         currentdict /GlobalSDicts get category get /sdict exch def
  3307.         currentdict /LocalRDicts get category get /lrdict exch def
  3308.         currentdict /LocalSDicts get category get /lsdict exch def
  3309.     } {
  3310.         currentdict /LocalRDicts get category known not {
  3311.             currentdict /LocalRDicts get category 10 dict put
  3312.             currentdict /LocalSDicts get category 10 dict put
  3313.         } if
  3314.         currentdict /LocalRDicts get category get /rdict exch def
  3315.         currentdict /LocalSDicts get category get /sdict exch def
  3316.     } ifelse
  3317.  
  3318.     /inst exch def   % save the instance
  3319.  
  3320.             % make it read only if its a composite
  3321.     /matched false def
  3322.     [/arraytype /stringtype /packedarraytype /dicttype /filetype]
  3323.     {currentdict /inst get type eq matched or /matched exch def } forall
  3324.     matched {
  3325.         /inst currentdict /inst get readonly def
  3326.     } if
  3327.  
  3328.     instflag { % check for correct datatype
  3329.         currentdict /inst get type currentdict /insttype get ne {
  3330.         end /DefineResource /typecheck err
  3331.         } if 
  3332.     } if
  3333.     /key exch def
  3334.     currentglobal {           % if true vm
  3335.         currentdict /inst get gcheck not { % can't store local instance into global
  3336.             end /DefineResource /invalidaccess err
  3337.         } if
  3338.         currentdict /lrdict get /nulltype ne {     % if local dict exists
  3339.             currentdict /lrdict get key undef        % delete any entry with
  3340.             currentdict /lsdict get key undef  % this key
  3341.         } if
  3342.     } if
  3343.     currentdict /rdict get key currentdict /inst get put   % store key, inst
  3344.     currentdict /sdict get key [0 -1 true] put   % set status
  3345.     currentdict /inst get                        % put instance back on stack
  3346.     currentdict /inst undef currentdict /key undef  % ditch local variables
  3347.     currentdict /lrdict undef currentdict /lsdict undef
  3348.     currentdict /rdict undef currentdict /sdict undef
  3349.     currentdict /category undef currentdict /insttype undef
  3350.     currentdict /matched undef currentdict /instflag undef
  3351.     end
  3352. }
  3353. >> /Category defineresource pop
  3354.  
  3355. % PATTERNTYPE
  3356. /PatternType
  3357. <<
  3358. /InstanceType /integertype /Category /PatternType
  3359. /err $resource /err get def
  3360.  
  3361. /ResourceForAll {
  3362.     implicitresourceforall
  3363. }
  3364.  
  3365. /ResourceStatus {
  3366.     count 2 lt {
  3367.         /ResourceStatus /stackunderflow err
  3368.     } if
  3369.     $resource begin
  3370.  
  3371.     /category exch def
  3372.     /key exch def
  3373.     currentdict /GlobalSDicts get category get length 0 eq {
  3374.         false
  3375.     } {
  3376.         currentdict /GlobalSDicts get category get
  3377.         begin
  3378.             currentdict key known not {
  3379.                 false
  3380.             } {
  3381.                 currentdict key get {} forall
  3382.             } ifelse
  3383.         end
  3384.     } ifelse
  3385.     $resource dup /key undef /category undef
  3386.     end
  3387. }
  3388.  
  3389. /UndefineResource {
  3390.     $resource /initialize known not {
  3391.         /UndefineResource /invalidaccess err
  3392.     } if
  3393.     count 2 lt {
  3394.         /UndefineResource /stackunderflow err
  3395.     } if
  3396.     $resource begin
  3397.     /category exch def
  3398.     /key exch def
  3399.     currentdict /GlobalRDicts get category get length 0 ne { % from global dict
  3400.         currentdict /GlobalRDicts get category get 
  3401.         begin
  3402.             currentdict /key load undef
  3403.         end
  3404.     } if
  3405.     currentdict dup /key undef /category undef
  3406.     end
  3407. }
  3408.  
  3409. /FindResource {
  3410.     count 1 lt {
  3411.         /FindResource /stackunderflow err
  3412.     } if
  3413.     $resource begin
  3414.  
  3415.     /category exch def
  3416.     /key exch def
  3417.     currentdict /GlobalRDicts get category get 
  3418.     begin 
  3419.         currentdict key known not {
  3420.             end end /FindResource /undefinedresource err
  3421.         } if
  3422.         currentdict key get
  3423.     end         % on the resource
  3424.     currentdict /key undef
  3425.     currentdict /category undef
  3426.     end            % on $resource
  3427. }
  3428.  
  3429. /DefineResource { 
  3430.     $resource /initialize known not {
  3431.         /DefineResource /invalidaccess err
  3432.     } if
  3433.     count 3 lt {          % check for enough args
  3434.         /DefineResource /stackunderflow err
  3435.     } if 
  3436.     currentdict /InstanceType get
  3437.     $resource begin
  3438.  
  3439.     /insttype exch def
  3440.     /category exch def
  3441.     currentglobal {
  3442.         currentdict /GlobalRDicts get category get /rdict exch def
  3443.         currentdict /GlobalSDicts get category get /sdict exch def
  3444.     } {
  3445.         end /DefineResource /invalidaccess err
  3446.     } ifelse
  3447.     /inst exch def   % make the instance readonly
  3448.     inst type currentdict /insttype get ne {   % check for correct datatype
  3449.         end /DefineResource /typecheck err
  3450.     } if 
  3451.     /key exch def
  3452.     currentglobal {           % if true vm
  3453.         currentdict /inst get gcheck not { % can't store local instance into global
  3454.             end /DefineResource /invalidaccess err
  3455.         } if
  3456.     } if
  3457.     currentdict /rdict get key inst put          % store key, inst
  3458.     currentdict /sdict get key [0 0 true] put   % set status
  3459.     inst                                         % put instance back on stack
  3460.     currentdict /inst undef currentdict /key undef  % ditch local variables
  3461.     currentdict /lrdict undef currentdict /lsdict undef
  3462.     currentdict /rdict undef currentdict /sdict undef
  3463.     currentdict /category undef currentdict /insttype undef
  3464.     end
  3465. }
  3466. >> /Category defineresource pop
  3467.  
  3468. %% Initialize a few resources
  3469. false setglobal
  3470. /DefaultColorRendering currentcolorrendering /ColorRendering defineresource pop
  3471. /DefaultHalftone currenthalftone /Halftone defineresource pop
  3472. /DefaultColorSpace currentcolorspace /ColorSpace defineresource pop
  3473.  
  3474. true setglobal
  3475. (%Serial%) (%Serial%) /IODevice defineresource pop
  3476. serverdict begin /__Initialize_ 12 def end
  3477. (%Serial%) <<
  3478.     /Password () /StopBits 1 /Enabled true /Baud 9600 /CheckParity false
  3479.     /Type (Communications) /FlowControl (XonXoff) /HasNames false
  3480.     /On true /Parity 0 /Protocol (Normal) /DataBits 8
  3481. >> setdevparams
  3482. serverdict /__Initialize_ undef
  3483.  
  3484. /ASCIIHexEncode /ASCIIHexEncode /Filter defineresource pop
  3485. /ASCIIHexDecode /ASCIIHexDecode /Filter defineresource pop
  3486. /ASCII85Encode  /ASCII85Encode /Filter defineresource pop
  3487. /ASCII85Decode  /ASCII85Decode /Filter defineresource pop
  3488. /CCITTFaxEncode /CCITTFaxEncode /Filter defineresource pop
  3489. /CCITTFaxDecode /CCITTFaxDecode /Filter defineresource pop
  3490. /DCTEncode /DCTEncode /Filter defineresource pop
  3491. /DCTDecode      /DCTDecode /Filter defineresource pop
  3492. /LZWEncode /LZWEncode /Filter defineresource pop
  3493. /LZWDecode      /LZWDecode /Filter defineresource pop
  3494. /RunLengthEncode /RunLengthEncode /Filter defineresource pop
  3495. /RunLengthDecode        /RunLengthDecode /Filter defineresource pop
  3496. /SubFileDecode  /SubFileDecode /Filter defineresource pop
  3497. /NullEncode     /NullEncode /Filter defineresource pop
  3498.  
  3499. /Separation /Separation /ColorSpaceFamily defineresource pop
  3500. /Pattern /Pattern /ColorSpaceFamily defineresource pop
  3501. /Indexed /Indexed /ColorSpaceFamily defineresource pop
  3502. /CIEBasedABC /CIEBasedABC /ColorSpaceFamily defineresource pop
  3503. /CIEBasedA /CIEBasedA /ColorSpaceFamily defineresource pop
  3504. /DeviceGray /DeviceGray /ColorSpaceFamily defineresource pop
  3505. /DeviceRGB /DeviceRGB /ColorSpaceFamily defineresource pop
  3506. /DeviceCMYK /DeviceCMYK /ColorSpaceFamily defineresource pop
  3507.  
  3508. 2 2 /FMapType defineresource pop
  3509. 3 3 /FMapType defineresource pop
  3510. 4 4 /FMapType defineresource pop
  3511. 5 5 /FMapType defineresource pop
  3512. 6 6 /FMapType defineresource pop
  3513. 7 7 /FMapType defineresource pop
  3514. 8 8 /FMapType defineresource pop
  3515.  
  3516. 1 1 /PatternType defineresource pop
  3517. 1 1 /ImageType defineresource pop
  3518. 1 1 /FormType defineresource pop
  3519. 1 1 /ColorRenderingType defineresource pop
  3520. 1 1 /HalftoneType defineresource pop
  3521. 2 2 /HalftoneType defineresource pop
  3522. 3 3 /HalftoneType defineresource pop
  3523. 4 4 /HalftoneType defineresource pop
  3524. 5 5 /HalftoneType defineresource pop
  3525.  
  3526. /Type0  0 /FontType defineresource pop
  3527. /Type1  1 /FontType defineresource pop
  3528. /Type3  3 /FontType defineresource pop
  3529. /Type4  4 /FontType defineresource pop
  3530. /Type5  5 /FontType defineresource pop
  3531.  
  3532. true setglobal
  3533. /StandardEncoding StandardEncoding /Encoding defineresource pop
  3534. /ISOLatin1Encoding ISOLatin1Encoding /Encoding defineresource pop
  3535. false setglobal
  3536.  
  3537. $resource /initialize undef
  3538.  
  3539. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% from setpd1.ps %%%%%%%%%%%%%%%%%%%%%%%%%
  3540. % Setup for the page device 
  3541. true setglobal
  3542. statusdict begin /defaultpddict1
  3543. <<
  3544.     /Policies <<
  3545.     /PolicyNotFound 1
  3546.     /MediaColor 1
  3547.     /MediaType 1
  3548.     /MediaWeight 0
  3549.     /PageSize 3
  3550.     /PolicyReport {pop}
  3551.     >>
  3552. >> def
  3553. /defaultpddict2
  3554. << 
  3555.     /NumCopies null
  3556.     /ManualFeed false
  3557.     /ImagingBBox null
  3558.     /HWResolution [ 72 72 ]
  3559.     /Policies <<
  3560.         /PolicyNotFound 1
  3561.         /MediaColor 1
  3562.         /MediaType 1
  3563.         /MediaWeight 0
  3564.         /PageSize 3
  3565.         /PolicyReport {pop}
  3566.     >>
  3567.     /PageSize [612 792]
  3568.     /PageMargins [0 0 0 0]
  3569.     /ImagingModel 0
  3570.     /GrayScale false
  3571.     /InputAttributes <<
  3572.         0 <</PageSize [612 792] >>  % A
  3573.         1 <</PageSize [612 864] >>  % Along
  3574.         2 <</PageSize [595 842] >>  % A4
  3575.         3 <</PageSize [612 864] >>  % A4long
  3576.         4 <</PageSize [842 1191] >> % A3
  3577.         5 <</PageSize [643 1009] >> % SuperA
  3578.         6 <</PageSize [612 1008] >> % Legal
  3579.         7 <</PageSize [792 1224] >> % B
  3580.         8 <</PageSize [864 1380] >> % SuperB
  3581.         9 <</PageSize [2304 2304] >> % Corel MaxPage
  3582.         /Priority [0 1 2 3 4 5 6 7 8 9]
  3583.     >>
  3584.     /OutputAttributes <<
  3585.         /Separations false
  3586.     >>
  3587.     /Install {}
  3588.      /BeginPage {pop }
  3589.     /EndPage {exch pop 2 ne }
  3590. >> def
  3591. false setglobal
  3592.  
  3593. statusdict begin
  3594. /gentray {
  3595.     << /Policies << /PageSize 0 >> >> setpagedevice
  3596.     statusdict begin 
  3597.         /trayname exch def
  3598.         /traydict 5 dict def
  3599.         traydict begin
  3600.             /PageMargins exch def
  3601.             /ImagingBBox exch def
  3602.             /PageSize exch def
  3603.         end
  3604.         traydict { setpagedevice } stopped {
  3605.             $error begin
  3606.                 /newerror true def
  3607.                 /errorname /rangecheck def
  3608.                 /command trayname cvs def
  3609.             end stop
  3610.         } if
  3611.     end
  3612. } def
  3613.  
  3614. /genpaper {
  3615.     << /Policies << /PageSize 7>> >> setpagedevice
  3616.     statusdict begin 
  3617.         /traydict 5 dict def
  3618.         traydict begin
  3619.             /PageMargins exch def
  3620.             /Margins exch def
  3621.             /ImagingBBox exch def
  3622.             /PageSize exch def
  3623.         end
  3624.         traydict  setpagedevice 
  3625.     end
  3626. } def
  3627. end
  3628.  
  3629. /setuppd { statusdict /defaultpddict1 get setpagedevice statusdict /defaultpddict2 get setpagedevice } def
  3630. end
  3631. % statusdict /setuppd get exec
  3632.